2016-11-12 132 views
2

我试图让那里的作者是来自特定国家的书籍,现在我的查询看起来是这样的:Laravel雄辩获得特定关系

$books->with('author')->where('country', '=', 'FR'); 

但其中适用于书籍,而不是作者

有帮助吗?

回答

3

您需要使用whereHas()。下面的代码应该做的伎俩:

$country = 'FR'; 
$books = Book::with('author')->whereHas('author', function($query) use ($country) { 
    $query->where('country', '=', $country); 
})->get(); 

这会给您有相关的作者,有国家列设置为FR所有图书。

+0

谢谢!我可以通过另一个论点关闭?我试过,但我得到了一个错误缺少参数2 – TheShun

+0

你想传递什么?你真的不能这么做,但我想你的意思是使用闭包内的变量外部作用域。我已经更新了答案 –

+0

是的“使用”让它工作,谢谢! – TheShun