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