zend导航部分与acl无法正常工作

时间:2012-01-04 10:04:54

标签: zend-framework navigation acl

我在导航和acl方面遇到了一些麻烦,说菜单中的权限不受尊重。 我有一个带菜单的xml配置文件。在我的bootstrap中,我将菜单初始化为:

    protected function _initNavigationXml() {
    $this->bootstrap('layout');
    $layout = $this->getResource('layout');
    $view = $layout->getView();
    $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml');

    $navigation = new Zend_Navigation($config);
    $view->navigation($navigation)->setAcl($this->_acl)->setRole($this->_auth->getIdentity()->role);
}

由于菜单的特殊格式,我必须将其显示在部分phtml文件中,例如:

<?php
$partial = array('sidemenu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);
echo $this->navigation()->menu()->renderPartial();
?>

菜单显示效果不错,但资源不受尊重。

添加以下

echo $this->navigation()->menu()->renderMenu();
<$>在$ partial之前,菜单正确且资源得到尊重。

任何帮助或进一步的问题将不胜感激;)
问候
安德烈

1 个答案:

答案 0 :(得分:2)

renderMenu()方法包括在给定您设置的ACL权限的情况下检查页面是否可见的代码。据我所知,如果你使用renderPartial(),你需要自己处理ACL检查。