5

使用 zend 框架创建动态侧边栏或其他非内容布局位置的最佳实践是什么?此时我创建了控制器女巫,我称之为 WidgetsController。在这个控制器中,我为侧边栏定义了一些带有“侧边栏”响应段的操作,在 IndexController 中,我用 $this->view->action(); 调用它们。功能,但我认为这不是创建动态侧边栏的最佳实践。感谢您的回答。

4

4 回答 4

8

你的问题没有提供很多细节。通常,我会说通过视图的渲染/部分方法将侧边栏加载为视图模板。因此,从内部视图:

//$data is dynamic data you want to pass to the sidebar
echo $this -> partial('/path/to/sidebar.phtml',array('menuitems' => $data));

然后侧边栏可以处理该动态数据:

//sidebar.phtml
<div id="sidebar">

    <?php foreach($this -> menuitems as $item) : ?>
    <a href="<?php echo $item['url']; ?>"><?php echo $item['title']; ?></a>
    <?php endforeach; ?>

</div>

如果您需要额外的功能,您可以创建一个专用的视图助手来处理它。

于 2009-01-07T16:47:09.860 回答
0

这适用于 ZF 1.11:Zend Framework 中的动态侧边栏实现

于 2012-01-07T10:58:26.180 回答
-2

是的,伙计们,我敢打赌,来自 Code Igniter 的人的答案是正确的方法。实际上,了解 CI 如何简单地完成它并进行比较很有帮助。在 ZF 中基本相同,只是 ZF 使用“Partials”代替“命名视图”。

ZF 只是有更多强加的规则,例如布局 + 视图 + 部分,以及更多的内部机制来实现这一点,这实际上使它运行速度减半,而代码点火器似乎只是将整个设备扁平化为“命名视图”。

(我还没有决定 ZF 是否煮过头了,或者某些 CI 牛排是否必须在中间保持生吃。)

如果你使用 $navigation->setPartial(blah blah) 那么前导数组(从技术上讲,这种数据构成了 MVC 事物的“模型”部分)并且对部分可用。

所以你有它,这个想法似乎是不要将模型的显示方面拉到控制器中,将模型显示的东西推到视图处理机器上。

我自己也想尝试一下,我确实在 Zend 手册的 view helpers 部分中搜索了 partials 以找到它,即使示例有点薄。

祝我好运基思

于 2009-10-27T01:07:32.553 回答
-4

我们想要更多详细信息,即侧边栏中显示的内容类型、显示方式(即使用或其他) <ul><div>从数据库中检索的内容等。

在同样使用该格式的CodeIgniterModel, View, Controller中,我们创建了一个名为“sidebar.php”的视图,并且在该Header视图中,我们包含了对该侧边栏视图的调用,即:

<html>
<head>.......</head>
<div id="header">....</div>
<?php $this->load->view('sidebar');?>

侧边栏视图包含显示菜单项的逻辑。通常它是一个静态菜单,但如果它是动态的并且必须从数据库中获取,我会这样做:

<ul>
   <?php
   $items=$this->some_model->getMenuItems();
   foreach ($items as $item):
   ?>
     <li><a href="<?=$item['url'];?>"><?=$item['text'];?></li>
   <?php endforeach;?>
</ul>
于 2009-01-07T16:42:06.220 回答