Ошибка в пользовательских директивах Blade с массивом в качестве параметра - PullRequest
0 голосов
/ 08 октября 2018

В моем приложении Laravel 5.7 я хочу использовать пользовательские директивы Blade и передавать массив в этой директиве, поскольку возможен другой доступ, например:

@loggedUserHasAccess([USER_ACCESS_ADMIN])
<div class="col">
    <a class="social-inner" href="{{ route('admin.dashboard') }}" >
        <span class="icon"></span><span>Backend</span>
    </a>
</div>
@endLoggedUserHasAccess

И в app / Providers / AppServiceProvider.php:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {

        ...


        \Blade::directive('loggedUserHasAccess', function (array $accessArray) {
            $condition = false;

            if (Auth::check()) {
                $loggedUser  = Auth::user();
                $usersGroups = User::getUsersGroupsByUserId($loggedUser->id, false);
                foreach ($usersGroups as $next_key => $nextUsersGroup) {
                    if (in_array($nextUsersGroup->group_id, $accessArray)) {
                        $condition = true;
                    }
                }
            }
            return "<?php if ($condition) { ?>";
        });

        Blade::directive('endLoggedUserHasAccess', function () {
            return "<?php } ?>";
        });

Но я получил синтаксическую ошибку: https://imgur.com/a/I5s1TmQ

USER_ACCESS_ADMIN определен в bootstrap / app.php.похоже, мой синтаксис недействителен, но какой действителен?

Спасибо!

...