Laravel Eloquent - Return 具有特定角色的用户(多对多关系)

Laravel Eloquent - Return Users with specific role (many-to-many relationship)

我有一个应用程序,我想在其中查找具有特定角色(在本例中为超级管理员)的所有用户(来自指定客户端)

一个客户端可以有多个用户

public function users() {
    return $this->hasMany(User::class);
}

一个用户可以属于多个角色

public function roles() {
    return $this->belongsToMany(Role::class);
}

我希望能够 return 来自具有特定角色的客户端的所有用户。

所以在客户端模型中我想要这样的东西:

public function superAdmins() {
    return ... // NOT SURE WHAT TO PUT HERE
}

定义关系时,您也可以添加 where() 语句。

这意味着您可以使用 whereHas:

public function superAdmins() {
    return $this->hasMany(User::class)
              ->whereHas('roles', function($query) {
                  return $query->where('name', 'super');
              });
}