-1

我知道在 asp.net mvc 中,您可以使用 @Section {} 之类的东西在视图中定义部分,并且在您的布局中您可以使用它们来定位/显示您想要的信息。在zend framework mvc中有什么等价的吗?一个例子会很棒。

4

1 回答 1

1

视图部分占位符大致相当于您从 ASP.NET 引用的部分。

占位符文档甚至显示了渲染自定义侧边栏内容的示例。

要使用视图助手,只需在您的views/scripts目录中创建一个视图脚本并使用.phtml扩展名命名它,然后将您想要的内容放入其中。

//application/views/scripts/sidebar.phtml
<div id="sidebar">
    Welcome <?php echo $this->username ?>
</div>

在您想要显示部分视图内容的布局或视图中,您可以调用:

<?php echo $this->partial('sidebar.phtml', array('username' => 'drew010')) ?>

上面的调用导致使用username传入的变量渲染 sidebar.phtml。视图部分具有独立的变量范围,因此您可以将变量作为数组传递并在部分中使用它们。

使用占位符是类似的,但占位符的内容可以通过多种方式设置。访问占位符内容也略有不同。

假设在您的布局中,您有:

<?php /* output sidebar from placeholder value "sidebar" */ ?>
<?php echo $this->placeholder('sidebar'); ?>

可以通过呈现捕获输出的视图脚本或直接分配给占位符本身来设置占位符内容。

将内容分配给占位符的最基本示例是:

<?php
// from controller:
$this->view->placeholder('sidebar')->set('<div id="sidebar">content</div>');

占位符手册更详细地介绍了如何分配、附加、前置和管理占位符中的内容。

两者都应该适合您从 ASP.NET 替换部分的目的。

于 2012-09-21T17:50:06.587 回答