我有一个带有数据透视表role_user的用户模型。
在我的用户表格中,我有一个字段'有效'。
用户可以拥有多个角色,这些角色保存在数据透视表中。
如何拉动所有处于active = 1且用户在数据透视表中具有特定角色的用户?
答案 0 :(得分:4)
试试这个。这假设您在用户和角色之间建立了雄辩的关系。我只在hasMany
/ belongsTo
关系中使用了这种类型的查询,但我认为它也适用于您的示例。
$users = User::where('active', 1)->whereHas('roles', function ($query) {
$query->where('role', 'foo');
})->get();
答案 1 :(得分:3)
按角色使用whereHas()
方法过滤用户:
User::whereHas('roles', function($q) use ($role) {
$q->where('role', $role);
})->where('active', 1)->get();