Как отключить представление script в контроллере - Zend Framework
Я играю с zend framework MVC. Одна вещь, которую я узнал, это то, что Zend Framework пытается включить представление script всякий раз, когда вызывается контроллер. Я могу отключить его в bootstrap со следующим кодом.
$frontController- > setParam ( 'noViewRenderer', правда);
Тем не менее, мне нужно инициализировать класс Zend_View в методе контроллера, а затем вынести файл script.
Как я могу остановить включение представления script в методе контроллера, поэтому я могу отключить его, если только хочу?
Ответы
Ответ 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() к вашему действию. Просто поймите, какое влияние это окажет на ваше приложение.