2013-12-16 32 views
0

的module.config已导航定义如下如何在zf2中设置基于登录的导航?

'navigation' => array(
      'default' => array(
        array(
          'label' => 'Home', 
          'route' => 'home', 
        ), 
        array(
          'label' => 'Report', 
          'route' => 'report', 

        array(
          'label' => 'Logout', 
          'route' => 'logout', 
        ), 
      ), 
    ), 

在我layout.phtml

<?php 
    echo $this->navigation('navigation')->menu()->renderMenu(
     $container = null, 
     $options = array(
      'ulClass' => 'nav navbar-nav', 
      'indent' => 16, 
     ) 
    ); 
?> 

如何隐藏导航注销在module.config时没有身份没有设置?

现在无论是否登录,我都能够看到注销,如何通过导航限制?

回答

1

如果用户未登录,则可以从导航中删除注销URL。

尝试:

//Module.php 
public function onBootstrap(MvcEvent $e) 
{    
    $application = $e->getApplication(); 
    $sm = $application->getServiceManager(); 
    if (user not login) { 
     $container = $sm->get('navigation'); 
     $logoutPage = $container->findBy('route' , 'logout'); 
     $container->removePage($logoutPage); 
    } 
} 

Reference