2015-05-13 31 views
10

Dopo una semplice modifica sulla barra di navigazione predefinita, ho ottenuto il codice per il menu di seguito ... Sarebbe molto brutto se aggiungessi altri menu.yii2 barra di navigazione con menu a discesa

<?php 
      NavBar::begin([ 
       'brandLabel' => 'My Project', 
       'brandUrl' => Yii::$app->homeUrl, 
       'options' => [ 
        'class' => 'navbar-inverse navbar-fixed-top', 
       ], 
      ]); 
      $menuItems = [ 
       ['label' => 'Home', 'url' => ['/site/index']], 
       ['label' => 'Contact', 'url' => ['/site/contact'],'visible'=>false], 
      ]; 
      if (Yii::$app->user->isGuest) { 
       $menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']]; 
       $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; 
      } else { 

       if(yii::$app->user->can('admin')){ 
       $menuItems[] = ['label' => 'Users', 'url' => ['/users']]; 
       } 

       $menuItems[] = ['label' => 'BUB Sub Projects', 'url' => ['/bub']]; 
       $menuItems[] = ['label' => 'Incoming BUB', 'url' => ['/bubincoming']]; 
       $menuItems[] = [ 
        'label' => 'Logout (' . Yii::$app->user->identity->username . ')', 
        'url' => ['/site/logout'], 
        'linkOptions' => ['data-method' => 'post'] 
       ]; 

      } 
      echo Nav::widget([ 
       'options' => ['class' => 'navbar-nav navbar-right'], 
       'items' => $menuItems, 
      ]); 
      NavBar::end(); 

     ?> 

Come aggiungere un menu a discesa o sottomenu a qualsiasi menu?

risposta

18

Dal funzionario documentation. Ho la risposta Ho cambiato le opzioni tra nav-pills a navbar-nav

echo Nav::widget([ 
    'items' => [ 
     [ 
      'label' => 'Home', 
      'url' => ['site/index'], 
      'linkOptions' => [...], 
     ], 
     [ 
      'label' => 'Dropdown', 
      'items' => [ 
       ['label' => 'Level 1 - Dropdown A', 'url' => '#'], 
       '<li class="divider"></li>', 
       '<li class="dropdown-header">Dropdown Header</li>', 
       ['label' => 'Level 1 - Dropdown B', 'url' => '#'], 
      ], 
     ], 
    ], 
    'options' => ['class' =>'navbar-nav'], 
]); 
2

Beh io non ho la reputazione necessaria, ma, proprio per essere più corretti sulla risposta "nerison", aggiungere la classe nav anche: come questi

'options' => ['class' =>'nav navbar-nav'],