2

我有带有 Acl 和角色的 Zend Navigation 对象:

echo $this->navigation()->menu('navigation')
->setAcl($this->acl)
->setRole(($this->user ? 'user' : 'guest'))
->render();

及其完美的工作(隐藏一些页面)

当我使用自定义部分时:

echo $this->navigation()->menu('navigation')
->setAcl($this->acl)
->setRole(($this->user ? 'user' : 'guest'))
->setPartial('partial/twitterBootstrapNavHeadUl.phtml')
->render();

而这部分内容

foreach ($this->container as $page)
    echo $this->navigation()->menu()->htmlify($page);

它传递给带有所有页面的部分 $this->container (通过 acl 设置为不可用)

也许我应该将 acl 等传递给部分

foreach ($this->container as $page)
    echo $this->navigation()->menu()->setAcl($this->acl)->setRole(($this->user ? 'user' : 'guest'))->htmlify($page); // ?????????????????????

但是如何实现呢?

有什么我应该做/知道的吗?

4

1 回答 1

10
foreach ($this->container as $page){
    if($this->navigation()->accept($page))
        echo $this->navigation()->menu()->htmlify($page);
}

为什么?在自定义视图中,您必须自己运行检查。

于 2013-08-19T10:48:18.083 回答