我正在使用laravel中的访问控制级别(ACL)。这里是两个pivot
表,一个是role_user
,它代表each users roles
,另一个是permission_role
,它代表each roles permissions
。现在我想从permission_role
模型中获取User
数据透视表数据。
我的代码示例。
In User Model
public function roles()
{
return $this->belongsToMany(Role::class);
}
In Role Model
public function users()
{
return $this->belongsToMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
In Permission Model
public function roles()
{
return $this->belongsToMany(Role::class);
}
我正尝试这种方式:-
$user->roles->with('permissions')->get();
它显示BadMethodException。
我该如何解决这个问题并获得期望输出。
答案 0 :(得分:1)
如果您希望加载嵌套关系,可以使用点分隔的语法来完成,例如:
User::with('roles.permissions')->find($id);
如果已经实例化了User
模型,则可以改用load()
方法(延迟加载):
$user->load('roles.permissions');