如何使用yii2 -bootstrap扩展名在yii2中向navbar添加模态?

use*_*065 2 css php jquery twitter-bootstrap yii2

我正在尝试将模态放在我的yii2项目的导航栏中.我正在使用yii2-bootstrap扩展.

导航代码:

        NavBar::begin([
            'brandLabel' => 'My Company',
            'brandUrl' => Yii::$app->homeUrl,
            'options' => [
                'class' => 'navbar-inverse navbar-fixed-top',
            ],
        ]);
        $menuItems = [
            ['label' => 'Home', 'url' => ['/site/index']],
            //['label' => 'facilities', 'url' => ['/facilities/index']],

        ['label' => 'Hotel',
        'items' => [
             ['label' => 'Facilities', 'url' => ['/facilities/index']],
           //  '<li class="divider"></li>',
         //    '<li class="dropdown-header">Dropdown Header</li>',
             ['label' => 'Cuisines', 'url' => ['/cuisines/index']],
        ],

         ]
        ];

        if (Yii::$app->user->isGuest) {
            $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
        } else {
            $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();


    ?>
Run Code Online (Sandbox Code Playgroud)

模态代码:

<?php

Modal::begin([
    'header' => '<h2>Hello world</h2>',
    'toggleButton' => ['label' => 'click me'],
 ]);

 echo 'Say hello...';

 Modal::end();
?>
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何将此模式添加到导航栏?

小智 7

首先在您的站点/索引上放置带有id的模态

    <?php
     use yii\bootstrap\Modal;

     Modal::begin(['id' => 'modal',
        'header' => '<h2>Hello world</h2>']);

         echo "Say Hello...";

     Modal::end();
    ?>
Run Code Online (Sandbox Code Playgroud)

然后在您的controller/SiteController中创建一个jQuery操作

function actionShowmodal(){
    $js='$("#modal").modal("show")';
    $this->getView()->registerJs($js);        
    return $this->render('index');
}
Run Code Online (Sandbox Code Playgroud)

最后在views\layouts\main中添加Nav :: wigdet中的链接

['label' => 'Show Modal', 'url' => ['/site/showmodal']],
Run Code Online (Sandbox Code Playgroud)