刀片指令不与Spatie Addon合作,把头发拉到这里

问题描述 投票:0回答:1

我一点一点地遵循了自述文件。

  • 我可以创建用户/角色/权限并分配它们。
  • 它们也是在DB中正确创建的。

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

我试图自己解决这个问题,但是我已经没想完了。我认为这可能是一个警卫问题,但我正在使用以下内容

 'middleware_class' => [
    App\Http\Middleware\CheckIfAdmin::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    Backpack\Base\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
],

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

以下命令dd(backpack_user()->hasRole('test'))返回false,这让我觉得这是一个警卫问题。

表model_has_roles看起来如下(id 2是我的用户)db screenshot

欢迎任何帮助

谢谢

backpack-for-laravel
1个回答
0
投票

这就是我解决它的方法1.在base.middleware_class数组中使用Backpack \ Base \ app \ Http \ Middleware \ UseBackpackAuthGuardInsteadOfDefaultAuthGuard :: class。根据doc https://github.com/Laravel-Backpack/PermissionManager 2.在刀片中使用指令@role('***')。 @can将无法正常工作。

在较旧版本的Demo中不需要这样做。最近看来,配置权限.php有不同的默认值。


0
投票

对于我的情况清除缓存修复了问题:

php artisan view:clear
© www.soinside.com 2019 - 2024. All rights reserved.