Zend Framework 2 layout.phtml

ase*_*win 2 layout zend-framework2

所以,因为我可以在控制器中编写代码以影响视图... layout.phtml读取的代码是什么?(我假设module.php,但我想要一些反馈)

编辑:要清楚......在我的控制器中,我可以得到一个等于某个变量并在我的视图中访问它.我想在我的布局中发现类似的动作.

谢谢

Jur*_*man 10

你在这篇文章中提出了各种问题.我会尝试解决其中的一些问题.

布局如何工作?

在Zend Framework 2中,存在"视图模型"的概念.视图模型是一个具有几个变量和分配模板的对象.使用给定变量呈现此模板.

此外,您可以嵌套视图模型.因此,一个视图模型("布局")有一个从您的控制器创建的子项.子项在父视图模型中呈现并存储为变量.此变量的名称称为"捕获到".

会发生什么,是你有一个控制器,然后创建一个视图模型.此视图模型作为子视图模型插入到新模型中,即布局.这个孩子被设置为"捕获到" content.因此在布局中,子视图模型的结果将插入到$content变量中.

如何访问控制器中的布局变量?

有一个layout控制器插件,可让您直接访问布局视图模型.所以你可以直接在那里设置变量:

public function indexAction()
{
    $this->layout()->setVariable('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)

然后在你的布局中$foo回声bar.

如何在视图脚本中访问布局变量?

有一个layout视图助手,它还可以让您直接访问布局视图模型.所以你也可以在那里设置变量:

<?php $this->layout()->foo = 'bar';?>
Run Code Online (Sandbox Code Playgroud)

然后在你的布局中$foo回声bar.