Zend Navigation,ACL和Partials

Tom*_*ski 2 zend-navigation zend-framework2

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

echo $this->navigation()->menu('navigation')
->setAcl($this->acl)
->setRole(($this->user ? 'user' : 'guest'))
->render();
Run Code Online (Sandbox Code Playgroud)

和它的工作完美(隐藏一些页面)

当我使用自定义部分:

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

这部分内容

foreach ($this->container as $page)
    echo $this->navigation()->menu()->htmlify($page);
Run Code Online (Sandbox Code Playgroud)

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

也许我应该将acl等传递给partial

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

但是如何实现呢?

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

小智 10

foreach ($this->container as $page){
    if($this->navigation()->accept($page))
        echo $this->navigation()->menu()->htmlify($page);
}
Run Code Online (Sandbox Code Playgroud)

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