Php 拉雷维尔口若悬河地得到了具体的关系
我试图获取作者来自特定国家的书籍,目前我的查询如下:Php 拉雷维尔口若悬河地得到了具体的关系,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我试图获取作者来自特定国家的书籍,目前我的查询如下: $books->with('author')->where('country', '=', 'FR'); 但是where适用于书籍,而不是作者 有什么帮助吗?您需要使用whereHas()。下面的代码应该可以做到这一点: $country = 'FR'; $books = Book::with('author')->whereHas('author', function($query) use ($country) {
$books->with('author')->where('country', '=', 'FR');
但是where适用于书籍,而不是作者
有什么帮助吗?您需要使用whereHas()。下面的代码应该可以做到这一点:
$country = 'FR';
$books = Book::with('author')->whereHas('author', function($query) use ($country) {
$query->where('country', '=', $country);
})->get();
这将为您提供所有有相关作者的书籍,这些书籍的country列设置为FR谢谢!我可以把另一个参数传递给闭包吗?我试过了,但出现了一个错误缺少参数2您希望传递什么?你不能这么做,但我猜你的意思是在闭包的外部范围内使用变量。我已经更新了答案