在我的网站,我有用户,角色和权限。
每个用户都属于许多角色(例如user.php)和名为“role\u user”的透视表
public function roles()
{
return $this->belongsToMany(Role::class);
}
每个角色都属于多个权限(例如role.php)和名为“permission\u role”的透视表
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
我想以某种方式访问用户权限,但我似乎想不通。基本上我在user.php上需要这样的东西
public function permissions()
{
return $this->roles()->permissions();
}
这可能吗?请帮忙。谢谢您。
2条答案
按热度按时间o2rvlv0m1#
拉雷维尔没有一个直接关系的本地支持。
我为此案例创建了一个包:https://github.com/staudenmeir/eloquent-has-many-deep
你可以这样使用它:
qgelzfjb2#
如果您使用的是json格式的结果,那么如果您实现了有说服力的资源,这应该非常容易
定义以下三种资源:
(注意:要轻松定义如下所示的资源,请执行以下操作:
然后根据需要修改toarray函数。)
用户资源
角色
许可证:
在我的应用程序中,这里是获取单个用户时结果示例的屏幕截图。注意多个角色的嵌套,在这些角色下有多个权限。查询单个用户时json响应的屏幕截图