所以,因为我可以在控制器中编写代码来影响视图...... layout.phtml读取的代码是什么? (我假设module.php,但我想要一些反馈)
编辑: 要清楚......在我的控制器中,我可以得到一个等于某个变量并在我的视图中访问它。我想在我的布局中发现类似的动作。
感谢
答案 0 :(得分:10)
你在这篇文章中提出了各种问题。我会尝试解决其中的一些问题。
布局如何运作?
在Zend Framework 2中,存在“视图模型”的概念。视图模型是一个具有几个变量和分配模板的对象。该模板使用给定的变量进行渲染。
此外,您可以嵌套视图模型。因此,一个视图模型(“布局”)有一个从您的控制器创建的子项。子项在父视图模型中呈现并存储为变量。此变量的名称称为“捕获到”。
会发生什么,是否有控制器,然后创建视图模型。此视图模型作为子视图模型插入到新模型中,即布局。这个孩子设置为content
的“捕获到”。因此,在布局中,子视图模型的结果将插入$content
变量。
如何在控制器中访问布局变量?
有一个layout
控制器插件,可让您直接访问布局视图模型。所以你可以直接在那里设置变量:
public function indexAction()
{
$this->layout()->setVariable('foo', 'bar');
}
然后在您的布局中$foo
回声bar
。
如何在视图脚本中访问布局变量?
有一个layout
视图助手,它还可以让您直接访问布局视图模型。所以你也可以在那里设置变量:
<?php $this->layout()->foo = 'bar';?>
然后在您的布局中$foo
回声bar
。