在Zizaco/ entrust 的 Laravel Entrust 中,你如何设置 Entrust 与 Eloquent 的类关系,这样你就可以获得一个角色的权限列表,如下所示:
// get admin role
$adminRole = Role::find(1);
// get the permission of the admin role
$adminRolePermissions = $adminRole->permissions();
我尝试将以下 Eloquent 关系添加到Role
类中:
class Role class {
public function permissions()
{
return $this->hasManyThrough('App\Permission', 'App\PermissionRole', 'role_id', 'permission_id');
}
}
有了这个,当我得到一个角色的实例并尝试像这样获得它的权限时:
$adminRolePermissions = $adminRole->permission();
发生此错误:
SQLSTATE [42S22]:未找到列:1054 'on 子句'中的未知列'permission_role.id'(SQL:select
permissions
.*,.permission_role
fromrole_id
innerpermissions
joinpermission_roles
onpermission_role
.id
=permissions
.permission_id
wherepermission_role
.role_id
= 1)
当然,我已经创建了以下模型:PermissionRole
用于permission_role
表。