我正在使用 Zend Framework 1.10.8。
我想在我的 layout.phtml 中创建一个面包屑部分。我的菜单中有一些链接具有动态 url 参数,例如http://mydomain.com/editor/edit/id/42
我试图弄清楚如何将 id=XXX 传递给 Zend_Navigation,而 XXX 来自数据库并且在每个请求中都不同。
到目前为止,我发现的一种解决方案是在我的 xml 声明中添加一个属性,例如 params_id:
在 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 的基本要求,我很确定我的解决方案太复杂、太昂贵,而且必须有一个“开箱即用”的更简单的解决方案。