因此,我可以在控制器中编写代码以影响视图...
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
。