Я работаю с D8 и обычно не использую темы, поэтому я застрял на одной проблеме.
У меня есть собственный маршрут в пользовательском модуле, который вызывает метод checkinConfirmation() на контроллере.
Внутри этого контроллера у меня есть это:
общедоступная функция checkinConfirmation() {
$выход['элементы'] = [
'#тип' => 'набор полей',
'#title' => t('Проверено'),
];
$output['элементы']['имя'] = [
'#префикс' => '<h2>',
'#суффикс' => '</h2>',
'#markup' => t('Имя'),
];
$output['#theme'] = 'circulation_confirmation';
$выход['#выход'] = $выход;
вернуть $ вывод;
}
и внутри моей темы у меня есть это внутри hook_theme()
публичная функция mytheme_theme() {
$ тема ['circulation_confirmation'] = [
'template' => 'страница/тираж -- подтверждение',
'переменные' => [
'выход' => [],
],
];
}
В моем шаблоне есть {{ вывод }}
переменная для печати визуализированного вывода, полученного из $output. Проблема в том, что я не получаю элементы в шаблоне, и я не могу понять, почему. Шаблон подтягивается, так как обертка в файле шаблона применяется на странице, а основной контейнер имеет ширину, которой он должен быть.
При использовании этого вместо этого (в контроллере):
возвращаться [
'#theme' => 'circulation_confirmation',
'#output' => $выход,
];
По крайней мере, я получаю данные, но, похоже, он не использует предоставленный мной шаблон, поскольку оболочка теперь отсутствует, а основной контейнер имеет полную ширину, а не ширину, которой он должен быть.
Обычно я не создаю темы или шаблоны, и когда я это делаю, обычно это формы, поэтому я могу просто передать им «элемент рендеринга» => «форма», чтобы он передал элементы формы в тему. Я не уверен, что я делаю неправильно.
Пожалуйста помоги?