MySQL / Laravel / Eloquent: Select 行存在于 2 个表中

MySQL / Laravel / Eloquent: Select rows that exist in 2 tables

我有一个 users table 和 2 个枢轴 tables (user_locations, user_roles) 允许用户关联多个 "locations" 和 "roles"。 select 属于 New York(位置) Manager(角色)的用户的最佳方式是什么?

每个 table 中的列:

Table users => id, name

Table user_locations => user_id, location_id

Table user_roles => user_id, role_id

因此,例如,我想获取与 location_id 100 和 role_id 200[=30= 关联的用户列表]

我希望我能清楚地解释我的目标。提前致谢!

如果您在用户模型中正确设置了关系,您可以这样做:

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