我希望导航只显示Acl允许的项目,但我在导航与Acl之间存在问题 - 当我这样做时,就像它显示在互联网上的official example或some other resources一样,我的导航仍显示所有项目,如没有Acl。
在Bootstrap中,我正在做:
$view->navigation()->setContainer($container);
$view->navigation()->setAcl($acl)->setRole("1");
其中:
我已经设置了初始导航阵列,acl和导航对象看起来也很好并且包含它们应该包含的内容,所以我不打算在这里发布它们。
目前我们使用如下构造工作:
if(!$acl->isAllowed(/* auth data, controller, action */)) {
unset(/* this page from pages array */);
}
但这根本不是很好,而不像官方例子中的单行。
我的问题是我的问题最有可能是什么,以及开发人员在将Zend_Navigation与Zend_Acl结合使用时最常见的问题和错误是什么?
也许我可以在这些中找到解决方案,这可以帮助其他开发人员解决此问题。
答案 0 :(得分:1)
我有个建议。为什么不能为此编写视图助手(使用模块,控制器,操作作为参数)?在该视图助手中,您可以检查访问权限。
因此,您可以使用viewhelper检查访问权限并转发操作,而不是简单地重定向。
这是你在找什么?