为什么我们在zend中需要setNoRender和disableLayout

时间:2013-11-14 06:54:11

标签: zend-framework

$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(TRUE);

这是我们通常禁用视图的操作。我的问题是为什么我们需要disableLayout()?当布局本身是一个视图助手,为什么我们需要两个都禁用?

2 个答案:

答案 0 :(得分:2)

因为,

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

仅禁用视图,I.E。与动作相关联的phtml脚本..

但是如果你只使用那个,那么将加载整个应用程序的核心布局..它将包含一些css或js或与中心主题相关的任何内容,这是布局的一部分。

如果你想删除所有这些并且只想要空白页面那么你必须同时使用..

答案 1 :(得分:2)

要禁用您需要使用的操作的布局

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

例如,如果您对该操作使用Ajax请求,则可以使用此操作,此请求的输出将是此操作的关联视图(phtml)。

如果您不想使用此关联视图,则需要添加以下内容

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

现在,如果您想使用不同的视图文件,可以使用以下

$this->renderScript('other.phtml');