0

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

-> 长版 我想在我的网站的某些(不是全部)页面中有一个表格框。这就像一个显示用户信息的小部件。所以,我创建了一个布局(myLayout.phtml),我在其中调用了一个助手(MyHelper.php),通过模型获取所有信息。说到这里,现在我想从一个简单的角度来看使用这个布局来显示表格框。我如何在我的视图中调用该布局?

:)

PS我关注了这个很好的论坛(http://incho.net/tools-frameworks/zend/zend-framework-custom-view-helper/),但他们从主布局而不是从简单视图:/

解决了

我把“myLayout.phtml”没有放在“layouts”文件夹中,而是放在“scripts”文件夹中。

./views/helpers/MyHelper.php

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

}

./views/scripts/myViews/myHelperView.phtml(例如 myLayout.phtml)

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

在一个简单的视图中,我调用 myHelperView

渲染(“myViews/myHelperView.phtml”);?>

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

4

2 回答 2

1

听起来你的myLayout.phtml文件是一个partial脚本。您可以简单地将其加载到您的视图文件中,如下所示:

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

这与从布局中调用它相同。无论您是从布局还是视图中调用脚本都没有关系。布局只是一个特殊的视图脚本。

于 2012-06-01T08:01:57.090 回答
1

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

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

希望有帮助。

于 2012-05-31T22:43:56.453 回答