如何禁用控制器中的视图脚本 - Zend Framework

Moo*_*oon 11 zend-framework view

我正在玩zend框架的MVC.我发现的一件事是Zend Framework在调用控制器时尝试包含视图脚本.我可以使用以下代码在bootstrap中禁用它.

$ frontController-> setParam( 'noViewRenderer方法,设定',真);

但是,我必须在控制器方法中初始化Zend_View类,然后自己呈现脚本文件.

如何在控制器方法中停止包含视图脚本,以便我可以禁用它,如果我想要的话?

far*_*zad 33

您可以使用控制器中的以下代码禁用视图渲染器控制器助手:

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


fuz*_*zin 6

最好的例子是使用上面的两个命令:

public function myAction() {
    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}
Run Code Online (Sandbox Code Playgroud)

第一个禁用布局,通常启用

的application.ini

默认

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

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

第二个禁用视图脚本(.phtml),因此如果找不到视图脚本文件,则不会引发异常

$this->_helper->viewRenderer->setNoRender(true);
Run Code Online (Sandbox Code Playgroud)

还有一些视图帮助程序包括bouth侦听abowe并且不是必需的,例如,您希望从数组数据返回JSON而不渲染视图元素.

public function myAction() {
    $this->_helper->json(array());
}
Run Code Online (Sandbox Code Playgroud)

不会渲染布局也不会查看脚本.