Как настроить различные шаблоны шаблонов для разных модулей в Symfony
Как установить различные шаблоны шаблонов для разных модулей в Symfony?
У меня есть банковское приложение, состоящее из экрана входа и раздела участника. Поэтому, когда пользователь переходит на мой сайт, ему будет представлен экран входа в систему. После входа в систему он будет перенаправлен в раздел участника, чтобы он мог выполнять все свои банковские потребности.
Итак, как установить разные макеты для экрана входа и страниц внутри раздела участника? Symfony, похоже, использует frontend/templates/layout.php
как шаблон для ВСЕХ страниц. Можно ли определить разные макеты?
Ответы
Ответ 1
Да, вы можете определить отдельные макеты для каждого вида (или полностью отключить макет). Для этого вы должны создать (или отредактировать, если у вас уже есть) файл view.yml в каталоге /config вашего модуля. Вы можете определить макет, который будет использоваться для всех видов модуля или для каждого вида отдельно. Например:
#in /apps/my_app/modules/my_module/config/view.yml
#this will apply custom_layout to all views of the module
all:
layout: custom_layout
#this will apply login_layout to the loginSuccess view
loginSuccess:
layout: login_layout
#disable layout for this view
homeSuccess:
has_layout: false
Во всех случаях макет - это файл в вашем каталоге приложений/шаблонов (с добавлением .php). Если вы не определяете какие-либо директивы макета в файле конфигурации просмотра модуля, будет использоваться макет по умолчанию.
Ответ 2
Или, если вы находитесь внутри действий, вы можете просто использовать:
$this->setLayout('name_file_layout_without_extension');
И после того, как вы сможете работать с шаблоном, который вы используете внутри модуля.