2

Acl と Roles を持つ 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 に答える