Zend Navigation,ACL和Partials

时间:2013-07-29 07:39:49

标签: zend-framework2 zend-navigation

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

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

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

BUT

当我使用自定义部分时:

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->容器所有页面(通过acl设置为不可用)

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

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

但如何实现呢?

我应该做什么/知道什么?

1 个答案:

答案 0 :(得分:10)

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

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