2016-11-12 134 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