Zend Framework 2 layout.phtml

时间:2013-04-20 04:31:52

标签: layout zend-framework2

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

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

感谢

1 个答案:

答案 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