2009-10-11 56 views
10

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

$ frontController-> setParam('noViewRenderer',true);

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

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

回答

30

可以禁用视图渲染器控制器助手,有了这个代码在你的控制器:

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

thns dude ...它帮助....和你的答达到10 upvotes :) – chhameed 2012-09-12 06:46:31

1

简单,只需在您的操作中禁用它即可。

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

如果你不是在谈论布局,则只需添加一个出口()到你的动作。只要理解你的应用程序会有什么样的影响。

+0

这不是我所问的,但这也有帮助! – Moon 2009-10-11 05:45:35

4

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

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

第一个禁用布局,一般情况下启用

application.ini

默认

resources.layout.layoutPath = APPLICATION_PATH “/布局/脚本”

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

和第二禁用查看脚本(一个.phtml),以便不引发异常,如果查看脚本文件未找到

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

还有一些视图助手,其中包括bouth倾听了abowe并且没有必要,例如,您想从数组数据返回JSON并且不呈现视图元素。

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

将不呈现布局或视图脚本。

相关问题