Zend Layout在每个页面上呈现一些部分

时间:2011-06-28 11:20:10

标签: php model-view-controller zend-framework layout views

我是Zend Framework的新手,我正试图了解他们想要渲染的东西。 我正在创建一个网站,我有一个从数据库动态创建的菜单。如果我调用正确的操作,我会正确看到menu.phtml视图。

现在我想在每个页面上呈现这个menu.phtml,我不知道如何做到这一点。我读到了占位符,帮助者......但似乎没有得到它。

我想我必须调用动作来生成menu.phtml,渲染它并将其放入 占位符我可以从layout.phtml调用,但我不知道我是怎么做的。

提前致谢。

解决方案:

在layout.phtml中,我添加了以下行:

<?php echo $this->action('menu',
                            'page',
                            null,
                            array());?>

这将访问PageController中的menuAction并运行它。变量将被填入,所需的代码将在渲染menu.phtml视图脚本之前执行。

1 个答案:

答案 0 :(得分:4)

您可以这样做:

假设您在某个名为“标题”的div中显示菜单。

<div id='header'><?= $this->render('menu.phtml'); ?></div>

您必须在工作控制器中添加访问menu.phtml的正确路径。

public function init() {

        $this->view->addScriptPath(APPLICATION_PATH . '/views/scripts/');
}

如果要将值传递给menu.phtml文件。

<?php echo $this->partial('page/menu.phtml', array('var1'=>'value1','var2'=>'value2') ); ?>