Подтвердить что ты не робот

Как отключить представление script в контроллере - Zend Framework

Я играю с zend framework MVC. Одна вещь, которую я узнал, это то, что Zend Framework пытается включить представление script всякий раз, когда вызывается контроллер. Я могу отключить его в bootstrap со следующим кодом.

$frontController- > setParam ( 'noViewRenderer', правда);

Тем не менее, мне нужно инициализировать класс Zend_View в методе контроллера, а затем вынести файл script.

Как я могу остановить включение представления script в методе контроллера, поэтому я могу отключить его, если только хочу?

4b9b3361

Ответ 1

вы можете отключить помощник контроллера рендеринга view, с этим кодом в вашем контроллере:

public function myAction()
{
    $this->_helper->viewRenderer->setNoRender(true);
    // from now on, ZF won't search for a matching view script file.
}

Ответ 2

Лучшим примером будет использование обеих команд выше:

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

Сначала отключается макет, в общем случае включен

application.ini

по умолчанию

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

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

и второй отключает просмотр script (.phtml), поэтому исключение не возникает, если файл script не найден

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

Есть также помощники просмотра, которые включают в себя прослушивание и прослушивание без необходимости, например, вы хотите вернуть JSON из данных массива и не отображать элемент вида.

public function myAction() {
    $this->_helper->json(array());
}

не будет отображать макет и просмотр script.

Ответ 3

Легко, просто отключите его из своего действия.

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

Если вы не говорите о макетах, просто добавьте exit() к вашему действию. Просто поймите, какое влияние это окажет на ваше приложение.