duanan5940 2015-02-04 17:32
浏览 135
已采纳

laravel belongsToMany过滤器

I have three tables as below:

users

id|name|username|password

roles

id|name

users_roles

id|user_id|role_id

These tables communicate via belongsToMany. I would like to find a way to select all data in “users” table except ones that their user value of "role_id" is 5 in table “users_roles”. How can I do it?

  • 写回答

4条回答 默认 最新

  • download1323 2015-02-04 19:43
    关注

    You should use whereDoesntHave() to select models that don't have a related model meeting certain criteria:

    $users = User::whereDoesntHave('roles', function($q){
        $q->where('role_id', 5);
    })->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?