Как получить название текущего макета? - PullRequest
1 голос
/ 27 июля 2011

symfony getLayout , похоже, не работает, если макет установлен через view.yml. В любом случае, чтобы получить это в методе класса действия контроллера

Ответы [ 3 ]

1 голос
/ 28 июля 2011

Я недавно нуждался в этом.Вы можете сделать это, но вам просто нужно вернуть все содержимое view.yml в виде массива:

$view_array = sfViewConfigHandler::getConfiguration(array(sfConfig::get('sf_app_config_dir').'/‌​view.yml'));

Просто настройте относительный путь из sf_app_config_dir (или используйте другой маркер), чтобы получить то, что вам нужно.*

0 голосов
/ 27 июля 2011

Выполните следующий код в действии. Это работает для обоих случаев, макет устанавливается в действии или в view.yml.

$controller = $this->getContext()->getController();
$view = $controller->getView($this->getModuleName(), $this->getActionName(), 'Success');  // viewName == 'Success' (default)
$layout_name = $view->getDecoratorTemplate();  // e.g expected: layout.php

Дайте нам знать, если это работает для вас.

0 голосов
/ 27 июля 2011

Это не тривиальная задача. View.yml не входит в область действия действия.
Возможно, вы можете использовать setLayout в своих действиях, а не в view.yml.
если вы не можете, по некоторым причинам ... вы можете попробовать этот метод для получения данных в view.yml:
Возможно ли получить значение из view.yml в действии

...