Подтвердить что ты не робот

Как настроить различные шаблоны шаблонов для разных модулей в Symfony

Как установить различные шаблоны шаблонов для разных модулей в Symfony?

У меня есть банковское приложение, состоящее из экрана входа и раздела участника. Поэтому, когда пользователь переходит на мой сайт, ему будет представлен экран входа в систему. После входа в систему он будет перенаправлен в раздел участника, чтобы он мог выполнять все свои банковские потребности.

Итак, как установить разные макеты для экрана входа и страниц внутри раздела участника? Symfony, похоже, использует frontend/templates/layout.php как шаблон для ВСЕХ страниц. Можно ли определить разные макеты?

4b9b3361

Ответ 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');

И после того, как вы сможете работать с шаблоном, который вы используете внутри модуля.