Laravel检查表中是否存在特定项目

时间:2016-03-01 13:02:55

标签: php database laravel eloquent relationship

我有以下关系

  
      
  • 一部电影有很多剧集
  •   
  • 用户有关注列表
  •   
  • 一个关注列表有很多电影
  •   

我用滔滔不绝的

获得我的剧集
$latestshows = episode::with('movies') ->where('category', 'tvshow')->take(10) ->get(); 

然后我用

显示它
@foreach($latestshows as $show)
 @if (Auth::guest())
   <tr>
 @else
   <tr class="{{ Auth::user()-> watchlist **...** ? 'alert-danger' : '' }}">
 @endif
<td><a href="/movies/{{$show->movie->id}}">{{ $show->movie->title }}</a></td>
<td>{{ $show->number }}</td>
<td>{{ $show->created_at }}</td>
</tr>
@endforeach 

如何检查所使用的登录是否具有监视列表中的节目?在这种情况下,我想用不同的颜色显示它。 对不起,如果这是一个愚蠢的问题,我只是一个初学者并进行实验。

2 个答案:

答案 0 :(得分:1)

您可以使用in_arrayarray_diff(两种原生PHP函数)查看哪些电影相同,或者您可以使用 - &gt; diff()或 - &gt; has()方法来自您正在处理的Collection对象。

<td>
  <a ... {{ Auth::user()->watchlist->movies->find($show->movies->id) ? 'alert-danger' : '' }}>
    {{ $show->movie->title }}
  </a>
</td>

答案 1 :(得分:0)

这段代码给了我预期的结果

{{ Auth::user()->watchlist->movies->find($show->movies->id) ? 'alert-danger' : '' }}

谢谢奥斯卡,你是我的灵感:P