作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我像这样从 Controller 返回数据:
/**
* Password request sent
*
* @return array
*/
public function passwordRequestSentAction ()
{
return array(
'foo' => $this->bar,
);
}
但是 $this->foo
在 layout.phtml 中是空的,即使它在 controller/passwordRequestSent.phtml 中是正确的
我必须在我的抽象 Controller 中创建 postDispatch 方法并在 attachDefaultListeners() 中链接到它并在 postDispatch 中执行此操作:
$e->getViewModel()->setVariables($e->getResult()->getVariables());
真的是这样吗?我只是想共享我所有的变量,无论它的布局还是页面模板。
最佳答案
您可以通过调用 $this->layout()
访问布局模板:
class MyController extends AbstractActionController
{
public function myAction()
{
$layout = $this->layout();
// Returns the ViewModel of the Layout
}
}
更多信息和 sample 请查看the manual's examples .
然而,在大多数情况下,我建议为这些任务编写一个 viewhelper - 特别是导航/...这封装了 Controller 的逻辑,来自查看任务,如 I want the navigation displayed here
或 显示用户的登录框
。几乎所有类型的状态消息都是如此。
关于viewmodel - ZF2 : How to propagate Controller return to layout template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11493660/
我是一名优秀的程序员,十分优秀!