MySQL/Laravel/Eloquent:选择存在于两个表中的行

MySQL/Laravel/Eloquent:选择存在于两个表中的行,mysql,laravel,laravel-5,eloquent,laravel-eloquent,Mysql,Laravel,Laravel 5,Eloquent,Laravel Eloquent,我有一个用户表和两个透视表(用户位置,用户角色),允许用户与多个“位置”和“角色”关联。选择属于(比如)纽约(一个地点)和经理(一个角色)的用户的最佳方式是什么 每个表中的列: 表用户=>id,名称 表user\u locations=>user\u id,location\u id 表user\u roles=>user\u id,role\u id 因此,例如,我想获得一个与location\u id100和role\u id200关联的用户列表 我希望我清楚地解释了我的目标。提前谢谢你 如

我有一个
用户
表和两个透视表(
用户位置
用户角色
),允许用户与多个“位置”和“角色”关联。选择属于(比如)纽约(一个地点)和经理(一个角色)的用户的最佳方式是什么

每个表中的列:

用户
=>
id
名称

user\u locations
=>
user\u id
location\u id

user\u roles
=>
user\u id
role\u id

因此,例如,我想获得一个与location\u id
100
和role\u id
200
关联的用户列表


我希望我清楚地解释了我的目标。提前谢谢你

如果在用户模型中正确设置了关系,则可以执行以下操作:

$new_york_managers = User::whereHas('locations', function($q) {
    $q->where('id', 100);
})->whereHas('roles', function($q) {
    $q->where('id', 200);
});