web-dev-qa-db-ja.com

ドロップダウン付きのyii2 navbar

デフォルトのnavbarで簡単に編集した後、以下のメニューのコードを取得しました...さらにメニューを追加すると、非常に見苦しくなります。

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

        ?>

メニューにドロップダウンまたはサブメニューを追加する方法は?

13
beginner

公式の ドキュメント から。私は答えを得ました。オプションをnav-pillsから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'],
]);
25
beginner

まあ、私は必要な評判を持っていませんが、「nerison」の答えをより正確にするために、navクラスも追加します:これらのように

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