我有一个users
表,以及2个数据透视表(user_locations
,user_roles
),它们允许用户与多个"位置相关联。和#34;角色"。选择属于New York
(某个位置)和 Manager
(角色)的用户的最佳方式是什么?
每个表格中的列:
表users
=> id
,name
表user_locations
=> user_id
,location_id
表user_roles
=> user_id
,role_id
因此,例如,我想获得与location_id 100
和role_id 200
我希望我能清楚地解释我的目标。提前谢谢!
答案 0 :(得分:2)
如果您在用户模型中正确设置了关系,则可以执行以下操作:
$new_york_managers = User::whereHas('locations', function($q) {
$q->where('id', 100);
})->whereHas('roles', function($q) {
$q->where('id', 200);
});