我有两个模型,作者和预订
$authors = App\Author::with(['books' => function ($q){
$q->where('name', 'like', '%foo%');
}])->where('status', 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(以及标题查询关系存在)