2017-04-20 48 views
-1

预先加载我有一个关于在LaravelwhereHas在Laravel

public function index($category = null) { 
     $videos = Video::with(['content', 'content.categories' => function($query) use ($category) { 
      return $query->where('name', $category); 
     }])->paginate(10); 

     return view('frontend.videos')->with('videos', $videos); 
    } 

采取这一方法whereHas一个问题,我有一个视频模式,视频模型具有与1对1的关系内容模型,它又有一个多对多的关系,与类别模型 我需要获取所有视频,其中的内容与名称匹配任何已搜索的类别的内容,这可能吗?如果是的话如何?

回答

-1

我已经想通了,最终的解决方案看起来像这样,急切的加载会让我在子查询中的类别模型,我可以简单地使用它,并检查它。

$videos = Video::whereHas('content.categories', function($categories) use ($category) { 
    $categories->where('name', $category); 
})->paginate(10);