我有使用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); // ?????????????????????
但如何实现呢?
我应该做什么/知道什么?
答案 0 :(得分:10)
foreach ($this->container as $page){
if($this->navigation()->accept($page))
echo $this->navigation()->menu()->htmlify($page);
}
为什么呢?在自定义视图中,您必须自己运行检查。