【问题标题】:whereHas with Eager Loading in LaravelwhereHas 在 Laravel 中使用 Eager Loading
【发布时间】:2017-09-17 10:59:48
【问题描述】:

我有一个关于 Laravel 中 whereHas 的问题

   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);
    }

采用这种方法,我有一个视频模型,视频模型内容模型是一对一的关系,而内容模型又是多对的-与类别模型的许多关系 我需要获取所有视频,其内容的类别名称与搜索的内容相匹配,这可能吗?如果有怎么办?

【问题讨论】:

    标签: laravel-5 eloquent laravel-query-builder


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-22
      • 2021-10-17
      • 1970-01-01
      • 2018-01-25
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多