【发布时间】:2012-11-28 18:14:37
【问题描述】:
我在集成 BjyAuthorize 和 Zend 导航时遇到问题,不知道如何解决。我试试这个manual,一切正常。但我希望当我在bjyauthorize.config 中定义守卫之后,我的导航和守卫配置之间会有反射(被拒绝的控制器或路由不显示导航项)。我的问题是导航项仍然显示,但部分受到正确保护。有什么办法,如何将警卫反映到导航中?
我在 Module.php 中的视图助手配置
我的Application/Module.php 查看助手配置:
'mainMenu' => function($sm){
$nav = $sm->get('navigation')->menu();
$serviceLocator = $sm->getServiceLocator();
$acl = $serviceLocator->get('BjyAuthorize\Service\Authorize')->getAcl();
$role = $serviceLocator->get('BjyAuthorize\Service\Authorize')->getIdentity();
$nav->setAcl($acl);
$nav->setRole($role); // Todo replace
$nav->setUseAcl();
return $nav->setUlClass('nav')->setTranslatorTextDomain(__NAMESPACE__);
}
我在 bjyauthorize.global.php 中的守卫配置
'guards' => array(
'BjyAuthorize\Guard\Controller' => array(
array('controller' => 'Article\Controller\Article', 'roles' => array('user')),
),
还有我的navigation.global.php
return array(
'navigation' => array(
'default' => array(
'articles' => array(
'label' => 'Articles',
'route' => 'articles',
),
),
));
我尝试将路由配置更改为模块/控制器/操作,但仍然无法正常工作。
【问题讨论】:
标签: navigation zend-framework2