Zend Framework. Отключение макета(layout) и ViewRenderer для контроллера или функции.

Приветствую вас на блоге gavnokod.com

При использовании Zend Framework бывает необходимо отключить использование макета(layout) и ViewRenderer для конкретного контроллера или фукнции.

В моём случае это необходимо для нормальной работы с Ajax запросами.

Отключения вывода макета и ViewRenderer во всех экшенах(action) контроллера можно добиться путем добавления(а точнее наследования) метода preDispatch(), который будет вызываться фреймворком, перед вызовом каждой функции в этом контроллере:

public function preDispatch()
{
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}

Для отключения layout(макета) в теле конкретной функции необходимо в ее начале писать тот-же код:

public function testAction()
{
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);

    // Ваш код ….
}

Рекомендую также ознакомиться:

  • Макс

    Надеюсь, остальные записи окажутся такими же интересными