Как установить разные макеты шаблонов для разных модулей в Symfony - PullRequest
16 голосов
/ 04 марта 2009

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

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

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

Ответы [ 2 ]

42 голосов
/ 05 марта 2009

Да, вы можете определить отдельные макеты для каждого вида (или вообще отключить макет). Для этого вы должны создать (или отредактировать, если он у вас уже есть) файл 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

Во всех случаях макет - это файл в каталоге / templates вашего приложения (с добавлением .php). Если вы не зададите никаких директив макета в файле конфигурации представления модуля, будет использоваться макет по умолчанию.

0 голосов
/ 24 марта 2016

Или, если вы находитесь внутри действий, вы можете использовать просто:

$this->setLayout('name_file_layout_without_extension');

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...