duanpu2272 2019-04-14 08:11
浏览 158
已采纳

如何检索与多个角色关联的用户,如[“role1”,“role2”...]

I have users and roles relationship as belongsToMany. I now want to get all users have multiple roles by names.

I have tried as,

 $role_ids = [1,2];
 $users = User::whereHas('roles' , function ($query) use($role_ids) {
            $query->whereIn('roles.id', $role_ids);
        })->get();

But this approach gives me users who are associated with both or either one roles which is not i am expecting

  • 写回答

1条回答 默认 最新

  • dongsuiwo0279 2019-04-14 16:34
    关注

    You'll have to add multiple whereHas for that:

    $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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型