gpt4 book ai didi

eloquent - 如何为 Laravel Zizaco/entrust 设置 Eloquent 关系以获得角色权限?

转载 作者:行者123 更新时间:2023-12-02 21:04:50 26 4
gpt4 key购买 nike

Zizaco/entrust的 Laravel Entrust,如何设置与 Eloquent 的 Entrust 类关系,以便获得角色拥有的权限列表,如下所示:

// 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]: Column not found: 1054 Unknown column 'permission_role.id' in 'on clause' (SQL: select permissions.*, permission_role.role_id from permissions inner join permission_roles on permission_role.id = permissions.permission_id where permission_role.role_id = 1)

当然,我已经创建了以下模型:permission_role 表的PermissionRole

最佳答案

permission_role.id 无效。由于“Eloquent ORM 关系”,您的表permission_role 应该包含默认名为“permission_id”和“role_id”的列。可能您已经覆盖了模型的主键名称。请检查 Config.entrust 文件是否具有与您的模型相同的属性。

关于eloquent - 如何为 Laravel Zizaco/entrust 设置 Eloquent 关系以获得角色权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com