【问题标题】:Zend Navigation, ACL and PartialsZend Navigation、ACL 和 Partials
【发布时间】:2013-07-29 07:39:48
【问题描述】:

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

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

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

但是如何实现呢?

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

【问题讨论】:

    标签: zend-framework2 zend-navigation


    【解决方案1】:
    foreach ($this->container as $page){
        if($this->navigation()->accept($page))
            echo $this->navigation()->menu()->htmlify($page);
    }
    

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

    【讨论】:

    • 哇。谢谢。我花了很多时间在文档上,但在任何地方都找不到。
    • 答案是否正确我无法使其正常工作。经过一番挖掘和思考,我使用 Navigation::setDefaultAcl 和 Navigation::setDefaultRole 让它工作。希望它对将来的某些人有所帮助
    • 我也使用了 setDefault 方法 @Hendriq 但我仍然必须手动检查 acl,正如 Aleksander 发布的那样。
    • 没错,两者都需要使用。即Aleksander的检查和设置的默认方法
    • 这里是基于 #zf2 手册示例的问题的简短摘要:blog.webdevilopers.net/?p=32
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多