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

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

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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