У меня есть контроллер, который я хочу использовать для сценариев 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();