Zend Framework - 从视图中获取布局

时间:2012-05-31 22:16:35

标签: zend-framework layout view helper

- >精简版: 我想在我的视图中显示一个布局。我怎么称呼它?

- >长版 我想在我的网站的一些(不是全部)页面上有一个表格框。这将像一个显示用户信息的小部件。 所以,我创建了一个布局(myLayout.phtml),我称之为帮助器(MyHelper.php),通过模型获取所有信息。 这一点,现在我想从一个简单的视图使用这个布局来显示表框。 如何在我的视图中调用该布局?

:)

P.S。我跟着这个好论坛(http://inchoo.net/tools-frameworks/zend/zend-framework-custom-view-helper/),但他们从主要布局调用了“myLayout.phtml”而不是简单的查看:/

解决

我把“myLayout.phtml”放在“layouts”文件夹中但不放在“scripts”文件夹中。

./视图/助手/ MyHelper.php

class Zend_View_Helper_MyHelper
{
    public function myHelper()
    {
        $mm = new MyModel();
        return $mm->myModel();
    }

}

./ views / scripts / myViews / myHelperView.phtml(ex myLayout.phtml)

<ul>
    <?php foreach($this->myHelper() as $item): ?>
        <li><?php echo $item ?></li>
    <?php endforeach; ?>
</ul>

在简单的视图中我调用myHelperView

呈现( “myViews / myHelperView.phtml”); ?&GT;

对于我的文件顺序,我希望将最后一个脚本保留在布局文件夹中,但我不知道如何将它读到该位置。 我希望这种方式很好......

2 个答案:

答案 0 :(得分:1)

听起来您已创建自定义View Helper。如果是这种情况,那么您在视图中显示它所需要的只是拨打类似<?php echo $this->myViewHelperName() ?>的电话。

Placeholder Helper也可能是您感兴趣的。使用占位符助手,可以在布局中无条件地调用占位符,但只能从所需的视图中将视图助手的内容分配给它。这样,如果您没有为占位符分配任何内容,它将不会显示任何内容,但如果您调用视图助手并将内容分配给占位符,它将显示您想要的内容。

希望有所帮助。

答案 1 :(得分:1)

听起来您的myLayout.phtml文件是partial脚本。您只需将其加载到视图文件中,如下所示:

<?php echo $this->partial('myLayout.phtml') ?>

这与从布局中调用它相同。您是否从布局或视图中调用脚本并不重要。布局只是一个特殊的视图脚本。