Laravel急切地加载模型条件

时间:2016-04-18 02:04:23

标签: laravel

我有两个模型,作者预订

$authors = App\Author::with(['books' => function ($q){
    $q->where('name', 'like', '%foo%');
}])->where('status', 1);

根据给定的查询,这将返回状态为1的所有作者以及匹配条件的书籍。

我在这里寻求的是,如果关闭中的条件返回空书。我不希望在结果中返回该作者。

1 个答案:

答案 0 :(得分:1)

尝试whereHas

$authors = App\Author::with('books')
    ->whereHas('books', function ($query) {
        $query->where('name', 'like', '%foo%');
    })->where('status', 1)
      ->get();

文档(不确定您使用的Laravel版本):https://laravel.com/docs/master/eloquent-relationships#querying-relations(以及标题查询关系存在