所以我对laravel和php很陌生,所以我有几个问题。
现在我有一个后置模型,有很多喜欢。
目前,我正在尝试使用@foreach($posts as $post)从控制器检索帖子(这部分已经工作,检索帖子内容的代码不相关)来显示视图上的所有帖子,我希望以简洁的方式显示帖子所具有的所有好恶。
目前,like->like==1是like,like->like==0是like。
因此,如果一个帖子有5个不喜欢的地方,它会显示:
鲍勃·简和其他四个人不喜欢这样
或者如果它有两个不喜欢:
无名氏和约翰教不喜欢这个

            <div class = "dislikes">
                @if(count($post->likes->where('like',0))==0)
                @elseif(count($post->likes->where('like',0))==1)
                    {{ $post->likes->where('like', 0)->first()->user->first_name }} {{ $post->likes->where('like', 0)->first()->user->last_name }} Disikes this
                @elseif(count($post->likes->where('like',0))==2)
                    {{($post->likes->where('like', 0))->first()->user->first_name}} {{($post->likes->where('like', 0))->first()->user->last_name}} and {{($post->likes->where('like', 0))->last()->user->first_name}} {{($post->likes->where('like', 0))->last()->user->last_name}} Dislike This
                @elseif(count($post->likes->where('like', 0))>=4)
                    {{($post->likes->where('like', 0))->first()->user->first_name}} {{($post->likes->where('like', 0))->first()->user->last_name}} and {{count($post->likes->where('like', 0)) - 1}}  Others Like This
                @else
                    @for($i=0;$i<count($post->likes->where('like',0));$i++)
                        @if($i+1 == count($post->likes->where('like',0)))
                            and {{$post->likes->where('like',0))->get()[$i]->user->first_name}} {{$post->likes->where('like',0)->get()[$i]->user->last_name}} Like This
                        @else
                            {{$post->likes->where('like',0)->get()[$i]->user->first_name}} {{$post->likes->where('like',0)->get()[$i]->user->last_name}} ,
                        @endif
                    @endfor
                @endif
            </div>

我用密码玩了几个小时,但是
($post->likes->where('like',0))[$i]->user->first_name在我的for循环中不起作用,($post->likes->where('like',0))[$i]->user->first_name也不起作用(我在括号中放了一点来尝试修复这个问题)。
我不知所措。任何关于我能更好地解决这个问题的建议都将非常感谢。
谢谢您。

最佳答案

我不知道你的型号和桌子的结构。但是假设您有一个名为post的表和模型,like和dislike。您应该在post模型中建立关系,例如:

public function like()
{
   return $this->hasMany(Like::class);
}

public function dislike()
{
   return $this->hasMany(Dislike::class);
}

然后可以在控制器中检索数据,例如
$posts = Post::with('like', 'dislike')->get();
return view('view', compact('posts'));

现在您可以在视图中循环,例如
@foreach($posts as $post)

     @if($post->like != null)
     <div class = "like">
         @foreach($post->like)
             // render the view here...
         @endforeach
     </div>
     @endif

     @if($post->dislike != null)
     <div class = "dislikes">
         @foreach($post->dislike)
             // render the view here...
         @endforeach
     </div>
     @endif

@endforeach

关于php - 使用Laravel渲染带有帖子的 View ,并从帖子中检索喜欢的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40209486/

10-12 12:52
查看更多