Передача массива в директиву Laravel Blade

Передача массива в директиву Laravel Blade

26.06.2020 06:29:39 Источник

Я пытаюсь избежать выполнения следующих действий в blade

<?php if(auth()->check() && auth()->user()->hasRoles(['administrator', 'superadmin'])) { ?>
...
<?php } ?>

Я попробовал такую директиву клинка как эта;

Blade::directive('roles', function ($roles) {
        return "<?php if (auth()->check() && auth()->user()->hasRoles({$roles}): ?>";
    });

Я получаю эту ошибку:

syntax error, unexpected ':' (View: /Users/.../index.blade.php)

Когда я попробую это в Laravel blade;

@roles(['admin', 'super-admin'])
...
@endroles

Я хочу передать массив ролей в blade и выполнить правильные разрешения. У меня есть метод в пользовательской модели под названием hasRoles(array $roles), который принимает массив ролей.

У вопроса есть решение - Посмотреть?

Ответы - Передача массива в директиву Laravel Blade / Passing an array to Laravel Blade Directive

Является ответом!
Digvijay

26.06.2020 06:32:38

Там': 'в конце вашего состояния if

if (auth()->check() && auth()->user()->hasRoles({$roles}):

измените его на

if ( auth()->check() && auth()->user()->hasRoles({$roles}) ) { ... }
Закрыть X