php - 如何检索与多个角色关联的用户,例如 ["role1","role2"...]
问题描述
我有作为 belongsToMany 的用户和角色关系。我现在想让所有用户按名称拥有多个角色。
我试过了,
$role_ids = [1,2];
$users = User::whereHas('roles' , function ($query) use($role_ids) {
$query->whereIn('roles.id', $role_ids);
})->get();
但是这种方法为我提供了与两个或任何一个角色相关联的用户,这不是我所期望的
解决方案
您必须为此添加多个whereHas
:
$role_ids = [1,2];
$users = User::with('roles');
foreach($role_ids as $role){
$users->whereHas('roles', function($q) use ($role){
$q->where('roles.id', $role);
});
}
$users = $users->get();
推荐阅读
- angular - 失败:WebSocket 握手期间出错:net::ERR_CONNECTION_RESET 使用 ng2-mqtt 连接到 mqtt 时
- mysql - 需要找到表joinig 2表的一个元素
- pandas - 如何使用 Pandas 将结构垂直转换为水平
- python - 计算字符串中的字符串
- c# - C# 布尔和布尔?jQuery 验证问题
- ios - ISplitViewController:DetailViewController 可以从 MasterVIewController 加载数据而无需返回吗?
- python - 如何将 QTabBar 中的图标居中?
- python - 如何分组数据框并将列用作值
- django - 如何在Django中制作类似矩阵的表格
- javascript - 当缓存被硬重新加载时,我的 toggleClass 函数有时仅适用于我的 JSON 创建的字段