我有3个表:User、Role和具有Role\u id和User\u id的透视表RoleUser。
对于关系在我的模型我这样做:
榜样:
public function users() {
return $this->belongsToMany('App\Models\User')->using(RoleUser::class);
}
用户模型:
public function roles() {
return $this->hasMany('App\Models\Role')->using(RoleUser::class);
}
我为filter by one角色做了这项工作,效果很好:
$roles = Role::find($request->get('role_id'))->first();
return $roles->users;
但是现在我需要通过许多角色来过滤我的用户。
我将从我的前端发送一个数组,其中包含角色的id。
事实上,我可以得到如下角色
$roles = Role::whereIn('id', $request->get('role_id'))->get();
$roles = [{"id":2,"name":"Admin","description":"blabla","created_at":"2018-12-04 09:48:56","updated_at":"2021-04-23 14:53:15"},{"id":3,"name":"developper","description":"blabla","created_at":"2018-12-04 09:51:31","updated_at":"2021-04-23 14:53:15"}]
但我不知道如何才能获得具有此角色的用户。
您需要遍历集合,获取每个角色的用户,并将其返回到一个数组中,如下所示:
$roles = Role::whereIn('id', $request->get('role_id'))->get();
return $roles->map->users->flatten();
或者你反过来做:
return User::whereHas('roles', function($q) use($request) {
$q->whereIn('id', $request->get('role_id'));
})->get();
我想在laravel中创建一个RBAC系统,其中一个用户可以属于多个角色,每个角色可以有多个权限。中间件应在继续请求之前检查用户是否具有特定权限(在其任何角色内)。 我能够实施一个案例,其中 用户属于一个具有多个权限的角色 我需要实现具有多个权限的多个角色的用户。有什么指点吗?
问题内容: 我有2张桌子: 表: 表: 现在,我想获取所有位置并过滤两个属性: 我正在尝试构造一些查询,如下所示: …但是仍然无法得到我所需要的。 问题答案: 经过几个小时的合并和尝试,我终于做到了: 我太接近了,因此将所有过滤条件都移至。
我在一个有这种结构的拉威尔项目中工作 用户:id | first | u name |。。。 角色:id|name 分配的角色:id |用户id |角色id 我认为这是很明显的:p 用户模型 角色模型 我正在寻找一种方法来获取所有具有指定角色(在本例中为“教师”)的用户。我试过这个: 但这总是返回一个包含所有用户的数组。 有人知道为什么会这样吗?谢谢
问题内容: 我想为具有以下角色之一(ROLE1或ROLE2)的用户定义某些页面的访问权限 我正在尝试在我的spring security xml文件中进行如下配置: 我尝试了各种方法,例如: 等等 但似乎没有任何效果。 我一直在例外 要么 应该如何配置? 谢谢 问题答案: 问题是我配置了自定义 ,但没有通过其中一名选民。 通过添加到bean中来解决。
问题内容: 与多个用户/设备一起使用Apple的新ARKit的最佳方法是什么? 似乎每个设备都可以分别了解自己的场景。到目前为止,我最好的猜测是使用原始特征点位置,并尝试在设备之间进行匹配,以将不同的视图点粘合在一起,因为ARKit没有提供任何绝对参考引用。 ===编辑1,我尝试过的事情=== 1)特征点 我一直在玩耍并暴露了原始特征点,现在我确信在它们的当前状态下它们是死胡同: 它们不是原始特征
要检查多个角色是否具有方法级访问权限 我已使用@PreAuthorize annotation检查角色 @preAuthorize("hasRole(\""AuthoritiesContain. USER "\",)" ) 如何使用@PreAuthorize注释检查多个角色?