gpt4 book ai didi

php - 获取在 Laravel 中具有角色的所有用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:46 28 4
gpt4 key购买 nike

我在这个具有这种结构的 Laravel 项目中工作

用户:id |名字 |...

角色:id |姓名

assigned_roles:id |用户 ID |角色编号

我认为这是很明显的:p

用户模型

class User extends ConfideUser {
use HasRole;

public function Roles(){
return $this->belongsToMany('Role','assigned_roles');
}

榜样

class Role extends EntrustRole
{
public function Users()
{
return $this->belongsToMany('User','assigned_roles');
}


}

在这种情况下,我正在寻找一种方法让所有用户都具有指定的角色“教师”。我试过这个:

$students = User::with(array('Roles' => function($query) {
$query->where('name','Teacher');
}))
->get();
return $students;

但这总是返回所有用户的数组。

有人知道为什么会这样吗?谢谢!

最佳答案

你目前在你的 $students 查询中向 laravel 请求的是“给我所有的学生,如果角色是老师,则为每个学生获取他们所有的角色”

尝试使用whereHas

$students = User::whereHas(
'roles', function($q){
$q->where('name', 'Teacher');
}
)->get();

这应该为您提供用户,但仅限于他们拥有名为教师的角色的地方。

关于php - 获取在 Laravel 中具有角色的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487324/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com