2013-12-16 35 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