Как перейти на другой макет в Zend Framework? - PullRequest
1 голос
/ 04 февраля 2010

если у меня есть 2 макета в моем приложении, как можно изменить макет по умолчанию на другой макет для какого-либо контроллера или действия?

Ответы [ 3 ]

7 голосов
/ 04 февраля 2010

Робертбасик ответ правильный.Вы также можете сделать следующее внутри действия контроллера:

$this->_helper->layout->setLayout('otherlayout');
2 голосов
/ 04 февраля 2010

Вот, пожалуйста:

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

Где otherlayout - имя второго макета (otherlayout.phtml в папке макетов).

1 голос
/ 02 февраля 2011

На мой взгляд, лучше использовать

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

по вашему мнению, а не использовать

$this->_helper->layout->setLayout('otherlayout');

с контроллера.

В последнем методе есть ошибка. У меня был опыт, когда Я использовал

$this->_helper->layout->setLayout('otherlayout');

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

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

тогда это сработало

...