NavigationにAclで許可されたアイテムのみを表示したいのですが、NavigationをAclにリンクするのに問題があります-公式の例やインターネット上の他のリソースに示されているように、Navigationにはすべてのアイテムが表示されますAcl。
ブートストラップでは、私はやっています:
$view->navigation()->setContainer($container);
$view->navigation()->setAcl($acl)->setRole("1");
どこ :
- $view は Zend_View オブジェクトです
- $container は Zend_Navigation オブジェクトです
- $acl は Zend_Acl オブジェクトです
最初のナビゲーション配列を適切に設定しました。acl オブジェクトとナビゲーション オブジェクトも問題なく、含まれている必要があるものを含んでいるように見えるので、ここに投稿するつもりはありません。
現時点では、次のような構造を使用して機能するようになりました。
if(!$acl->isAllowed(/* auth data, controller, action */)) {
unset(/* this page from pages array */);
}
しかし、これはまったくきれいではなく、公式の例のワンライナーとは異なります。
私の質問は、ここで私の問題である可能性が最も高いのは何ですか? Zend_Navigation と Zend_Acl を組み合わせる際に開発者が犯す最も一般的な問題と間違いは何ですか?
多分私はそれらの中から解決策を見つけることができ、これはこの問題で問題を抱えている他の開発者を助けることができます.