本文介绍了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过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!