Zend framework2 Zend导航帮助程序不与ZfcRbac通信
我在执行ZfcRbac时遇到问题。在Rbac工作的那一刻,我在某个url上输入一个页面,我将收到一个403。我为此使用的代码如下:Zend framework2 Zend导航帮助程序不与ZfcRbac通信,zend-framework2,zfc-rbac,Zend Framework2,Zfc Rbac,我在执行ZfcRbac时遇到问题。在Rbac工作的那一刻,我在某个url上输入一个页面,我将收到一个403。我为此使用的代码如下: 'zfc_rbac' => array( 'guards' => array( 'ZfcRbac\Guard\RouteGuard' => array( 'relation*' => array('relation'), ),
'zfc_rbac' => array(
'guards' => array(
'ZfcRbac\Guard\RouteGuard' => array(
'relation*' => array('relation'),
),
),
'role_provider' => array(
'ZfcRbac\Role\InMemoryRoleProvider' => array(
'relation' => array(
'permissions' => array('view', 'edit', 'delete'),
),
),
),
),
当我试图让它与Zend Navigation助手对话时,问题就出现了。由于一些奇怪的原因,导航一直告诉我它可以访问该页面。当我点击它时,你似乎不能。这里有一些代码来检查它
public function onBootstrap(MvcEvent $e)
{
$application = $e->getApplication();
$serviceManager = $application->getServiceManager();
$sharedEvents = $application->getEventManager()->getSharedManager();
$authorization = $serviceManager->get('ZfcRbac\Service\AuthorizationService');
$sharedEvents->attach(
'Zend\View\Helper\Navigation\AbstractHelper', 'isAllowed', function (EventInterface $e) use ($authorization)
{
$page = $e->getParam('page');
$permission = $page->getPermission();
return $authorization->isGranted($permission);
}
);
}
视图辅助对象的调用方式如下:
<?=$this->navigation('navigation')->menu()->setPartial(array('sidebar.phtml', 'css'=>'nav navbar-nav'))->render();?>
希望有人知道这个问题的答案
提前感谢。也许这个例子可以帮助:[Zend Navigation and RBAC][1][1]: