2

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

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

谢谢

4

1 回答 1

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

于 2013-04-20T11:50:23.957 回答