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

时间:2009-10-11 03:28:05

标签: zend-framework view

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

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

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

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

3 个答案:

答案 0 :(得分:32)

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

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

答案 1 :(得分:6)

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

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();

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

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

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

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

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

答案 2 :(得分:1)

很简单,只需在行动中禁用它。

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

如果您不是在谈论布局,那么只需在您的操作中添加一个exit()即可。只需了解对您的应用程序会产生什么样的影响。