【问题标题】:Laravel spatie/laravel-permission @can directiveLaravel spatie/laravel-permission @can 指令
【发布时间】:2021-02-16 03:37:16
【问题描述】:

我目前正在使用 Spatie 角色和权限库。 我有多个警卫,分别是管理员和网络。我的管理员有权使用 guard_name = admin 来“管理身份验证”。 当我尝试运行下面的语法时,它返回 true。

current_user()->hasPermissionTo('manage authentication', 'admin')

但是当我使用@can 指令时,span 标签不会出现。

@can('manage authentication')
<span>Hello</span>
@endcan

我试过了,但是 span 标签仍然没有出现。

@can('manage authentication', 'admin')
<span>Hello</span>
@endcan

我做错了吗?

更新: 我的用户模型中没有任何与角色/权限相关的属性和功能

【问题讨论】:

  • php artisan cache:clear 可以使用,否则您需要手动删除storage/framework/cache 中的任何文件夹
  • @sta 感谢回复,我刚刚尝试了 php artisan cache:clear 并且 span 标签仍然没有显示
  • 删除/storage/framework/cache/的所有内容
  • @sta 尝试删除缓存中的文件夹仍然无法正常工作

标签: laravel laravel-permission


【解决方案1】:

@can 不能与多守卫一起使用

你可以用这个:

@if(auth('guard-name')->check() && auth('guard-name')->user()->can('permission-name'))

之后运行:

php artisan cache:forget spatie.permission.cache

然后:

php artisan cache:clear

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多