【发布时间】:2013-03-14 21:17:19
【问题描述】:
我不知道这是ZF2的bug还是我不太理解,但我很兴奋为什么会发生这种情况。
我正在使用一种解决方案,通过附加 Dispatch 事件来全局更改每个模块的布局。 (例如来自http://framework.zend.com/manual/2.1/en/modules/zend.view.quick-start.html#dealing-with-layouts,最后一个例子)
它运行良好,但问题是,当我想在某些操作中 setTerminate(true);(用于 Ajax 调用)时,它不会只显示 controller/action 的内容em> 模板,但只是没有内容的布局模板!而这正是我所没有预料到的。
这是如何模拟这一点,在调度函数中设置布局(而不是附加事件,以使其更清晰),然后在控制器的操作中设置终止。
public function dispatch(Request $request, Response $response = null)
{
parent::dispatch($request, $response);
$this->layout('layout/new');
}
public function indexAction()
{
$model = new ViewModel();
$model->setTerminal(true);
return $model;
}
再次,我希望这将只显示 controler/index 模板的内容,但不是那样,它只显示 layout/new 的内容而没有内容.
我尝试设置布局,它按我的预期工作。
public function indexAction()
{
$this->layout('layout/new');
$model = new ViewModel();
$model->setTerminal(true);
return $model;
}
这是有效的,它只显示 controller/index 模板的内容而不是布局。
因此,如果我要为每个控制器全局更改布局(通过附加调度事件),它会一直工作,直到我想将这些控制器之一用于 Ajax 调用并使用 setTerminate。
感谢您的帮助。
【问题讨论】:
标签: php zend-framework2 zend-view