我有用户和书籍。
用户模型:
public function books() {
return $this->hasMany('Books');
}
我可以做以下事情:
$user = User::find(1);
$books = $user->books;
现在,我希望获得名为Brian的几个用户的所有书籍。 所以我做的是:
$users = User::where('name', 'Brian')->get();
$books = $users->books;
当然这不起作用,因为books()是用户的方法,而不是一组用户的方法。
我怎么能得到所有名为Brian的用户的所有书籍?我可以遍历所有的Brians,但这似乎不是最好的做法。
我怎么能这样做?
答案 0 :(得分:1)
这是whereHas
电话的最佳位置:
为书籍提供user
关系,然后执行:
Book::whereHas('user', function($q) {
$q->whereName('Brian');
})->get();