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 sqlserver排序语句
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃