2015-05-13 16 views
10

Nach ein paar einfachen Änderungen an der Standard-Navbar, habe ich den Code für das Menü unten ... Es wäre sehr hässlich, wenn ich weitere Menüs hinzufügen würde.yii2 navbar mit dropdown

<?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(); 

     ?> 

Wie ein Dropdown oder Untermenüs zu einem der Menü hinzufügen?

Antwort

18

Von der offiziellen documentation. Ich habe die Antwort bekommen. Ich habe die Optionen aus nav-pills zu 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

Nun, ich habe nicht den Ruf benötigt, sondern nur mehr richtig auf der „Nerison“ Antwort zu sein, auch die nav-Klasse hinzufügen: wie diese

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