使用Zend_Navigation,我可以做类似
的事情Home > Projects > Collaborators
但如果我想要更有用的东西
,该怎么办?Home > Project name > Collaborator name
我怎样才能实现这一目标?这是个好主意吗?可能会出现性能问题?是不是需要查询层次结构?但无论如何,我怎样才能做到这一点?
答案 0 :(得分:4)
示例#34显示了如何使用视图partial来获取面包屑。我会在foreach
上执行$this->pages
并根据需要进行调整
答案 1 :(得分:2)
最简单的方法是渲染面包屑,然后在此字符串后附加协作者名称。
除非您在导航或站点地图中不需要它,否则此方法有效。否则,您必须手动将其添加到容器。
$this->navigation()
->getContainer()
->findOneByLabel('Colaborators')
->addPage(array('label'=>'name', 'uri'=>'/name'));
答案 2 :(得分:1)
也许这有点晚了,但是因为我一直在努力解决这个问题,所以我发布它以防它可以帮助任何人。
如果您只想更改当前页面的实际标签,最简单的方法就是这样:
$this->view->navigation()->findOneByRoute(
Zend_Controller_Front::getInstance()
->getRouter()
->getCurrentRouteName()
)
->setLabel($label);
如果你使用Zend_Routes, findOneByRoute 会很有效,如果不使用,你可以通过 findOneByX 来改变它,因为X是页面的任何属性。< / p>
回答OP的问题,在这种情况下,很容易做到:
$this->view->navigation()->findOneByLabel('Collaborators')
->setLabel('Collaborator'. $name);
成为$ name,是协作者的名字。
我希望这对那些仍在使用ZF1的人有所帮助。
问候,