laravel属于ToMany过滤器 [英] laravel belongsToMany Filter

查看:57
本文介绍了laravel属于ToMany过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个表,如下所示:

I have three tables as below:

id |名称|用户名|密码

id|name|username|password

id |名称

id | user_id | role_id

id|user_id|role_id

这些表通过belongsToMany通信.我想找到一种方法来选择用户"表中的所有数据,除了那些在表"users_roles"中用户值"role_id"为5的数据之外.我该怎么办?

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?

推荐答案

您应该使用 whereDoesntHave()选择不具有满足特定条件的相关模型的模型:

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();

这篇关于laravel属于ToMany过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆