laravel spatie 权限 hasPermissionTo 不适用于字符串
laravel spatie permission hasPermissionTo not work with string
我想测试一个功能,在这个功能中,用户检查是否有这个操作权限。
当我传递一个权限模型时,它 returns 是一个很好的结果,但是当我在参数中给出权限名称时,它会运行一个错误。
composer.json
"laravel/framework": "^9.3",
"spatie/laravel-permission": "^5.5"
Test.php
$permission = 'do-something';
$permissionModel = Permission::create([
'name' => $permission,
'guard_name' => 'sanctum'
]);
$user = User::factory()->create();
$user->givePermissionTo($permissionModel);
$user->hasPermissionTo($permissionModel); // return true
$user->hasPermissionTo($permission); // fail with error:
Spatie\Permission\Exceptions\PermissionDoesNotExist: There is no permission named `do-something` for guard `sanctum`.
我想使用字符串解决方案,我做错了什么?
如果您的许可中存在权限名称table,请尝试以下命令:
php artisan cache:forget spatie.permission.cache
然后
php artisan cache:clear
我想测试一个功能,在这个功能中,用户检查是否有这个操作权限。 当我传递一个权限模型时,它 returns 是一个很好的结果,但是当我在参数中给出权限名称时,它会运行一个错误。
composer.json
"laravel/framework": "^9.3",
"spatie/laravel-permission": "^5.5"
Test.php
$permission = 'do-something';
$permissionModel = Permission::create([
'name' => $permission,
'guard_name' => 'sanctum'
]);
$user = User::factory()->create();
$user->givePermissionTo($permissionModel);
$user->hasPermissionTo($permissionModel); // return true
$user->hasPermissionTo($permission); // fail with error:
Spatie\Permission\Exceptions\PermissionDoesNotExist: There is no permission named `do-something` for guard `sanctum`.
我想使用字符串解决方案,我做错了什么?
如果您的许可中存在权限名称table,请尝试以下命令:
php artisan cache:forget spatie.permission.cache
然后
php artisan cache:clear