使用zend框架创建动态侧边栏或其他非内容布局位置的最佳做法是什么。这时我创建了控制器,我称之为WidgetsController。在这个控制器中,我用侧边栏的“侧边栏”响应段定义了一些动作,在IndexController中我用$ this-> view-> action()调用它们。功能,但我不认为这是创建动态侧边栏的最佳做法。 谢谢你的回答。
答案 0 :(得分: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>
如果您需要额外的功能,可以创建专用的view helper来处理它。
答案 1 :(得分:0)
答案 2 :(得分:-2)
是的,伙计们,我的赌注是Code Igniter的回答是正确的方法。 实际上,它有助于了解CI如何简单地进行比较并进行比较。 它在ZF中基本相同,只是不是“命名视图”ZF有“Partials”。
ZF只是有更强加的纪律,比如布局+视图+局部,以及更多的内部机制来实现这一点,这实际上确实使它的运行速度提高了一半, 而代码点火器似乎已将整个设备夷为平面“命名视图”。
(我还没有决定ZF是否过度煮熟,或者是否一些CI牛排必须在中间生吃。)
如果你使用$ navigation-&gt; setPartial(blah blah)那么引导数组(技术上这种数据构成了MVC事物的“模型”部分)并且可供部分使用。
所以你有它,想法似乎是不要将模型的显示方面拉入控制器,将模型显示的东西推出到视图处理机器。
我正准备自己动手,我确实在Zend手册的视图助手部分搜索了部分内容,以找到这个,即使示例有点薄。
祝你好运 基思答案 3 :(得分:-4)
我们想要更多细节,即侧边栏中显示的内容类型,您如何展示它们(即使用<ul>
,<div>
或其他内容),是检索到的内容来自数据库等
在同样使用Model, View, Controller
格式的CodeIgniter中,我们创建了一个名为“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>