Laravel View Composer "Невозможно использовать объект типа Closure в качестве массива" - PullRequest
0 голосов
/ 09 июля 2019

Я использую массив для моего композитора представления, и он выдает эту ошибку, когда я пытаюсь просмотреть страницу Cannot use object of type Closure as array.

Я попытался использовать вместо переменной eloquent для этой переменной, но это не сработало, потому что это не так, как предполагается, структурировать так, как я их использую. Я также пытался создать функцию в переменной $view->with().

public function compose(View $view)
    {
        $view->with('configurable', function() {
            $configurables = Cache::rememberForever('configurables', function() {
                return Configurables::all();
            });
            $configurable = [];
            foreach($configurables as $key) {
                $configurable[$key->slug] = [
                    'value' => $key->value
                ];
            }

            return $configurable;
        });
    }

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Ошибка означает, что метод with() ожидает значение, а не функцию (замыкание).Вы можете изменить свой код следующим образом:

public function compose(View $view)
{

        $configurables = Cache::rememberForever('configurables', function() {
            return Configurables::all();
        });

        $configurable = [];

        foreach($configurables as $key) {
            $configurable[$key->slug] = [
                'value' => $key->value
            ];
        }

       $view->with('configurable', $configurable);
}

Надеюсь, это поможет.

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

Попробуйте:

Configurables::all()->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...