Php 渴望负荷的拉威尔简单约束

Php 渴望负荷的拉威尔简单约束,php,laravel,Php,Laravel,我有一个用户模型,它属于一个站点。一个站点可以有多个用户 用户表 身份证 名字 电子邮件 公司地址id 站点表 身份证 名字 用户中的关系定义如下: public function site() { return User::belongsTo('App\CompanySite', 'company_site_id', 'id'); } 我只想将所有用户分配到一个站点(比如站点ID为1) 但是,这将返回所有用户,而不考虑他们的站点。您将获得所有用户,这就是为什么使用->get

我有一个用户模型,它属于一个站点。一个站点可以有多个用户

用户表
  • 身份证
  • 名字
  • 电子邮件
  • 公司地址id
站点表
  • 身份证
  • 名字
用户中的关系定义如下:

public function site()
{
    return User::belongsTo('App\CompanySite', 'company_site_id', 'id');
}
我只想将所有用户分配到一个站点(比如站点ID为1)


但是,这将返回所有用户,而不考虑他们的站点。

您将获得所有用户,这就是为什么使用
->get()

使用
whereHas
方法。这将查询您的关系并仅返回具有您想要/查询的关系结果的模型

$users = User::whereHas('site', function($q)
{
    $q->where('id', '=', 1);

})->get();

因此,在本例中,将返回id为1的站点的用户。

完全有意义。文档在这方面有点含糊不清,因为示例读起来好像只有当关系匹配约束时才会得到模型。但是,如果我使用'with',那么它将返回所有父模型,但只返回经过筛选的中继模型。再次感谢
$users = User::whereHas('site', function($q)
{
    $q->where('id', '=', 1);

})->get();