刀锋指令与斯帕蒂阿顿不起作用,在这里拉我的头发



我已经逐点遵循了自述文件。

  • 我可以创建用户/角色/权限并分配它们。
  • 它们也会在数据库中正确创建。

但是,当我尝试使用 @role@can 刀片指令时,它不起作用,它似乎总是false

我试图自己弄清楚,但我没有想法了。 我以为这可能是一个警卫问题,但我正在使用以下内容

 'middleware_class' => [
    AppHttpMiddlewareCheckIfAdmin::class,
    IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
    BackpackBaseappHttpMiddlewareUseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
],

我不使用两种身份验证方法,只使用背包方法。我过去确实运行过make:auth命令,但此后我删除了它创建的所有文件。

以下命令dd(backpack_user()->hasRole('test'))返回false这真的让我认为这是一个警卫问题。

model_has_roles如下所示(ID 2 是我的用户)数据库截图

欢迎任何帮助

谢谢

对于我的情况,清除缓存解决了这个问题:

php artisan view:clear

这就是我解决它的方式 1. 在数组base.middleware_class中,使用 Backpack\Base\app\Http\Middleware\UseBackpackAuthGuard而不是DefaultAuthGuard::class。根据文档 https://github.com/Laravel-Backpack/PermissionManager 2. 在刀片中使用指令 @role('***')。@can行不通。

这在旧版本的演示中是不需要的。似乎在最新的配置权限.php具有不同的默认值。

相关内容

最新更新