Вывод пользовательского частичного блейда из трезвого контроллера - PullRequest
0 голосов
/ 18 сентября 2018

Итак, для моего шаблона я создаю блок кода, который запускает пользовательские «Модули».По сути, это пользовательский тип записей с полями, встроенными в ACF.Каждый из этих модулей имеет свой собственный шаблон Blade (например, /resources/views/modules/brandwindow.blade.php).

Я также создал шаблон Blade для пользовательского типа записи, называемого «Модульная страница».В этом шаблоне я обрабатываю все вызовы для каждого модуля, вызываемого в цикле.Однако я хочу иметь возможность обрабатывать этот логин в контроллере.Итак, я создал Контроллер под названием «LoadModules», который будет обрабатывать этот запрос.

У меня возникли трудности с вызовом шаблона Blade из контроллера.В функции GetModules () я перебираю повторитель ACF, чтобы увидеть, какой модуль мне нужно загрузить, и затем снабжаю все соответствующие поля другим контроллером, специфичным для этого модуля (например, если module = 'bwindow', вызывать BrandWindow-> BrandWindowFields).Это возвращает массив, который я могу затем передать в View.

Я добавил класс View в верхнюю часть контроллера (как в Laravel), но я почти уверен, что делаючто-то здесь не так.Я получаю следующую ошибку: класс 'View' не найден в .. \ app \ Controllers \ LoadModules.php в строке 25

Вот мой код контроллера:

public static function GetModules()
{
    $brand_window_loader = new BrandWindow;
    $module_array = get_sub_field('content_type');
    if ($module_array == 'bwindow') {
        // Do Brand Window Stuff
        $windows = $brand_window_loader->GetBrandWindows();
        $output = '';
        foreach ( $windows as $window ){
            $feild_array = $brand_window_loader->BrandWindowFields($window);
            $output .= View::make('modules.brandwindow', $feild_array);
        }
        return $output;
    } elseif ($module_array == 'blogfeed') {
        // Do Blog Feed Stuff
        return $module_array;
    }
}

В строке 25 выдается ошибка:

$output .= View::make('modules.brandwindow', $feild_array);

$ brand_window_loader-> BrandWindowFields ($ window) - это просто массивключевые значения, которые он извлекает из ACF, используя идентификатор сообщения.

'title' => 'Title',
'sub_text' => 'Sub Text',
'url' => 'http://example.com'
ETC.

Ошибка, очевидно, связана с отсутствием класса «Вид», поэтому мне интересно,ve namespaced или класс View не существует с Sage 9 / Bedrock.Если это правда, как лучше всего включить шаблон Blade из контроллера?

Спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете попробовать:

$output .= App\template('modules.brandwindow', $feild_array)
...