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

xjreopfe  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个应用程序,我想找到所有的用户(从指定的客户端)与一定的作用(在这种情况下超级管理员)
一个客户端可以有多个用户

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
}
syqv5f0l

syqv5f0l1#

在定义关系时,您还可以添加where()语句。
这意味着您可以使用whereHas

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

相关问题