我有一个用户模型,属于一个站点。一个站点可以有很多用户。
该关系在User中定义如下:
public function site()
{
return User::belongsTo('App\CompanySite', 'company_site_id', 'id');
}
我想简单地将所有用户分配到一个站点(假设站点ID为1)。
$users = \App\User::with(array('site' => function($query)
{
$query->where('id', '=', 1);
}))->get();
dd(count($users));
然而,这会使所有用户无论其网站如何都会返回。
答案 0 :(得分:1)
使用->get();
。
使用whereHas
方法。这将查询您的关系并仅返回具有您想要/查询的关系结果的模型;
$users = User::whereHas('site', function($q)
{
$q->where('id', '=', 1);
})->get();
因此,在此实例中将返回具有id
为1的网站的用户。