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

时间:2017-06-26 20:28:40

标签: mysql laravel laravel-5 eloquent laravel-eloquent

我有一个users表,以及2个数据透视表(user_locationsuser_roles),它们允许用户与多个"位置相关联。和#34;角色"。选择属于New York(某个位置) Manager(角色)的用户的最佳方式是什么?

每个表格中的列:

users => idname

user_locations => user_idlocation_id

user_roles => user_idrole_id

因此,例如,我想获得与location_id 100和role_id 200

相关联的用户列表

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

1 个答案:

答案 0 :(得分:2)

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

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