Zend Framework – установка макета для контроллера

У меня есть контроллер, который я хочу использовать для сценариев ajax для вызова и установки переменных сеанса, получения информации и т. Д. Как настроить его так, чтобы этот конкретный контроллер не использовал макет по умолчанию (в частности, NO layout), чтобы он мог отправлять сообщения XML / JSON взад и вперед?

Как и все, что связано с Zend_Framework и Zend_Application, есть несколько способов сделать это, но на последних нескольких чистых концертах Zend, которые я сделал, я видел, как люди использовали следующее (из метода действий в вашем контроллере)

$this->_helper->layout()->disableLayout(); 

Это отключает макет. Если вы хотите отключить свой вид, вы можете использовать

 $this->_helper->viewRenderer->setNoRender(true); 

снова, из метода действия в контроллере.

в вашем контроллере …

 public function init() { if ($this->getRequest()->isXmlHttpRequest()) { // no Layout $this->_helper->layout()->disableLayout(); // no views $this->_helper->viewRenderer->setNoRender(true); } } 

В действии вашего контроллера попробуйте

 $this->_helper->layout->disableLayout();