Laravel数据库关系 - 从多个父级获取所有子级

时间:2015-05-04 23:14:32

标签: laravel laravel-4 eloquent

我有用户和书籍。

用户模型:

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,但这似乎不是最好的做法。

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

这是whereHas电话的最佳位置:

为书籍提供user关系,然后执行:

Book::whereHas('user', function($q) {
  $q->whereName('Brian');
})->get();