2016-11-11 34 views
0

用一个查询获取第三个表数据的最佳方法是什么?使用laravel雄辩提取数据表中的数据透视表一个查询

User : id | name  
Event : id | user_id 
Likes : id | user_id | event_id 

Here is my Eloquent Query 

$events = Event::with('likes','users')->get(); 

return view('events',compact('events')); 

In views i am iterating over all events like this, 
User has multiple events as well as multiple likes in relation model. 


@foreach($events as $event) 

{{ $event->name }} 
{{ $like_id }} //show like id if it is liked by the user 

    // I have to execute another loop only to check if it is liked or not 
     @foreach($row->likes as $like) 

      @if(Auth::id() == $like->user_id) 
        Liked 
      @endif 
     @endforeach 

@endforeach 

现在,我需要检查,如果登录用户已经很喜欢这个活动还是不是? 以及所有事件是否被喜欢?

回答

0

你可以为尝试:

@foreach($events as $event) 

    {{ $event->name }} 
    {{ $event->likes->count() }} 

    @if($event->likes->contains('user_id', Auth::id())) 
     Liked 
    @endif 

@endforeach 
相关问题