我有一个具有数据透视表role_user的用户模型。Laravel具有枢轴的雄辩查询模型
在我的用户表中我有一个字段'active'。
而且用户可以有多个角色保存在数据透视表中。
我怎样才能拉所有用户的活动= 1和用户在透视表中的具体角色?
我有一个具有数据透视表role_user的用户模型。Laravel具有枢轴的雄辩查询模型
在我的用户表中我有一个字段'active'。
而且用户可以有多个角色保存在数据透视表中。
我怎样才能拉所有用户的活动= 1和用户在透视表中的具体角色?
试试这个。这假设你在用户和角色之间建立了雄辩的关系。我只在hasMany
/belongsTo
关系中使用过这种类型的查询,但我认为它也适用于您的示例。
$users = User::where('active', 1)->whereHas('roles', function ($query) {
$query->where('role', 'foo');
})->get();
要通过角色使用过滤用户whereHas()
方法:
User::whereHas('roles', function($q) use ($role) {
$q->where('role', $role);
})->where('active', 1)->get();
在这种情况下,wherePivot是否为活动角色或用户过滤?我认为它可能是为活跃角色过滤,但OP正在寻找活跃用户。如果这不会过滤基于活动的用户表,但这比我的答案更清晰。 – jackel414
@ jackel414我确定'active'列在数据透视表中。我已经修复了代码。谢谢你提到它。 )我已经提出了你的答案。 –
感谢你们对你的答案,@ jackel414有一个稍微干净的代码和它的作品,但两个答案都好! – lewis4u