【发布时间】:2022-01-08 05:41:50
【问题描述】:
我有一个应用程序,我想在其中查找具有特定角色(在本例中为超级管理员)的所有用户(来自指定客户端)
一个客户端可以有很多用户
public function users() {
return $this->hasMany(User::class);
}
一个用户可以属于多个角色
public function roles() {
return $this->belongsToMany(Role::class);
}
我希望能够从具有特定角色的客户端返回所有用户。
所以在客户端模型中我想要这样的东西:
public function superAdmins() {
return ... // NOT SURE WHAT TO PUT HERE
}
【问题讨论】:
-
你试过使用
hasMany(User::class)->whereHas('roles', function($query){return $query->where('name', 'super');})吗? laravel.com/docs/8.x/… -
@SuperDJ - 我刚刚设法实现了非常相似但不太好的东西。这是一种享受。添加它作为答案,我会给你信用
-
另外,由于您的
Client模型上已经有public function users():return $this->users()->whereHas('roles', function ($query) { ... });- 您可以链接关系而不是重新定义hasMany(User::class)