我希望 Navigation 仅显示 Acl 允许的项目,但我在将 Navigation 与 Acl 链接时遇到问题 - 当我这样做时,就像在官方示例或Internet 上的其他一些资源中显示的那样,我的导航仍然显示所有项目,例如没有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 时最常见的问题和错误是什么?
也许我可以在其中找到解决方案,这可以帮助其他遇到此问题的开发人员。