我已经对 Laravel 项目从 v5.7(带有 Spatie Permissions 2.21)到带有 Spatie 5.5.0 的 v9 执行了早该更新。我没有收到任何错误,但hasRole()
对于肯定拥有该角色的用户,该函数不再返回 true。为Auth::user()->getRoleNames()
用户回显只返回一个空数组。任何指导将不胜感激。
查看我的旧提交,似乎除了composer.json
添加和数据库迁移之外,我需要做的只是用户模型编辑:
...
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
...
而这个配置(评论被剥离):
<?php
return [
'models' => [
'permission' => Spatie\Permission\Models\Permission::class,
'role' => Spatie\Permission\Models\Role::class,
],
'table_names' => [
'roles' => 'roles',
'permissions' => 'permissions',
'model_has_permissions' => 'model_has_permissions',
'model_has_roles' => 'model_has_roles',
'role_has_permissions' => 'role_has_permissions',
],
'column_names' => [
'model_morph_key' => 'model_id',
],
'cache_expiration_time' => 60 * 24,
'display_permission_in_exception' => false,
];