【发布时间】:2010-11-08 11:13:53
【问题描述】:
我正在使用 Zend Framework 1.10.8。
我想在我的 layout.phtml 中创建一个面包屑部分。我的菜单中有一些链接具有动态 url 参数,例如 http://mydomain.com/editor/edit/id/42
我试图弄清楚如何将 id=XXX 传递给 Zend_Navigation,而 XXX 来自数据库并且在每个请求中都不同。
到目前为止,我发现的一个解决方案是添加一个属性,例如params_id 到我的 xml 声明:
在 configs/navigation.xml 中
<pages>
<editor>
<label>Editor</label>
<controller>editor</controller>
<action>edit</action>
<params_id>id</params_id>
<route>default</route>
</editor>
</pages>
在控制器中循环浏览页面并动态添加我的参数 id = 42(而 42 将从最终版本的请求对象中检索)
$pages = $this->view->navigation()->getContainer()->findAllBy('params_id','id');
foreach ($pages as &$page) {
$page->setParams(array(
'id' => 42,
'something_else' => 667
));
}
由于添加动态 url 参数似乎是 Zend_Navigation 的基本要求,我很确定我的解决方案太复杂、太昂贵,而且必须有一个“开箱即用”的更简单的解决方案。
【问题讨论】:
标签: php zend-framework zend-navigation