我有五个表来设置三个表之间的关系: + 用户 + 角色 + 权限
通过数据透视表“user_role
”,用户和角色的关系是多对多
角色和权限的关系也是多对多
,通过数据透视表是“role_permission
”
现在我想显示列表用户,但我想将他们的权限带入此列表。我怎样才能做到这一点?
姓名电子邮件角色权限
aaa [email protected]版主、客户创建帖子、更新帖子、删除帖子
最佳答案
我最近通过这种方式完成了这个场景
用户模型
public function roles()
{
return $this->belongsToMany(Role::class,UserRole::class);
}
榜样
public function permissions()
{
return $this->belongsToMany(Permission::class,RolePermission::class);
}
现在,当您获得了急切加载关系所需的所有用户
public function index()
{
$users = User::with('roles.permissions')->get();
OR
$users = User::with(['roles' => function($query){
$query->with('permissions');
}])->get();
return view('view_name',compact('users'));
}
注意:您还可以使用 Laravel 集合来重新格式化角色和权限集合,以免使用多个循环。但我想你明白了
关于拉拉维尔 : Get permissions list for a user through roles table with belongtomany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62241195/