Директивы по лезвию не работают со Спати Аддон - PullRequest
0 голосов
/ 21 декабря 2018

Я следовал за readme по пунктам.

  • Я могу создавать пользователей / роли / разрешения и назначать их.
  • Они также правильно создаются в БД.

Однако, когда я пытаюсь использовать директивы @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

Любая помощь приветствуется

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

В моем случае очистка кэша исправила проблему:

php artisan view:clear
0 голосов
/ 13 февраля 2019

Вот как я это решил 1. Использовал Backpack \ Base \ app \ Http \ Middleware \ UseBackpackAuthGuardInsteadOfDefaultAuthGuard :: class, в массиве base.middleware_class.Согласно документу https://github.com/Laravel-Backpack/PermissionManager 2. Используется директива @role ('***') в лезвии.@can не будет работать.

Это не было нужно в более старых версиях Demo.Кажется, в последнем файле config permissions.php используются разные значения по умолчанию.

...