laravel spatie许可haspermission to不与字符串一起工作

发布于 2025-01-29 05:50:09 字数 727 浏览 3 评论 0原文

我想测试一个功能,在该功能中,用户检查该功能以对操作获得此权限。 当我通过权限模型时,它会返回一个很好的结果,但是当我在参数中授予权限名称时,它会运行错误。

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`.

我想使用字符串解决方案,我在做什么错?

I want to test a feature in which the user checks to have this permission for the operation.
When I pass a Permission model it returns a good result, but when I giv the the permission name in a parameter it runs an error.

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`.

I want to use the string solution, what am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

分开我的手 2025-02-05 05:50:09

如果您的Permissiom表中存在权限名称,请尝试以下命令:

php artisan cache:forget spatie.permission.cache

然后

php artisan cache:clear

If the permission name is exist in your permissiom table then try the following command:

php artisan cache:forget spatie.permission.cache

Then

php artisan cache:clear
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文