Zend Framework - не устанавливать макет для контроллера - PullRequest
11 голосов
/ 30 июля 2010

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

Ответы [ 3 ]

17 голосов
/ 30 июля 2010

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

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

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

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

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

7 голосов
/ 04 сентября 2012

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

public function init() {
    if ($this->getRequest()->isXmlHttpRequest()) {
        // no Layout 
        $this->_helper->layout()->disableLayout();
        // no views
        $this->_helper->viewRenderer->setNoRender(true);
    }
}
2 голосов
/ 30 июля 2010

В вашем контроллере попробуйте

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