1

使用 Zend_Navigation,我可以做类似的事情

Home > Projects > Collaborators

但是如果我想要更有用的东西怎么办

Home > Project name > Collaborator name

我怎样才能做到这一点?这是个好主意吗?可能会有性能问题?因为它必须查询层次结构?但无论它是什么,我怎样才能做到这一点?

4

3 回答 3

4

Example #34 展示了如何使用面包屑的视图部分。我会在需要的地方做foreach一个$this->pages调整

http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.navigation.breadcrumbs

于 2011-01-30T10:58:41.360 回答
2

最简单的方法是呈现面包屑,然后将协作者名称附加到此字符串。

除非您在导航或站点地图中不需要它,否则此方法有效。否则,您必须手动将其添加到容器中。

$this->navigation()
  ->getContainer()
  ->findOneByLabel('Colaborators')
  ->addPage(array('label'=>'name', 'uri'=>'/name'));
于 2011-01-30T13:25:20.660 回答
1

也许有点晚了,但由于我一直在努力解决这个问题,所以我发布它以防万一它可以帮助任何人。

如果你只是想改变当前页面的实际标签,最简单的方法是这样:

$this->view->navigation()->findOneByRoute(
                              Zend_Controller_Front::getInstance()
                                                     ->getRouter()
                                                     ->getCurrentRouteName()
                           )
                        ->setLabel($label);

如果您使用 Zend_Routes,findOneByRoute 会很好地工作,如果您不使用,您可以通过 findOneByX 更改它,因为X是页面的任何属性。

回答 OP 的问题,在这种情况下,很容易做到:

$this->view->navigation()->findOneByLabel('Collaborators')
                         ->setLabel('Collaborator'. $name);

作为 $name,合作者的名字。

我希望这对那些仍在使用 ZF1 的人有所帮助。

问候,

于 2015-07-09T16:14:20.173 回答