【问题标题】:Make a simple sub-menu using HTML, PHP使用 HTML、PHP 制作简单的子菜单
【发布时间】:2017-11-29 21:29:39
【问题描述】:

我有一个 yii2 应用程序,这是我的 layouts/main.php 视图的一部分:

<?php
/* @var $this \yii\web\View */
/* @var $content string */    
...
<body>
<?php $this->beginBody() ?>
<div class="wrap">
    <?php
    NavBar::begin([
        'brandLabel' => Yii::t('app', Yii::$app->name),
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-default navbar-fixed-top',
        ],
    ]);

    // everyone can see Home page
    $menuItems[] = ['label' => Yii::t('app', 'Home'), 'url' => ['/index.php/']];

    // we do not need to display About and Contact pages to employee+ roles
    if (!Yii::$app->user->can('employee')) {
        //$menuItems[] = ['label' => Yii::t('app', 'About'), 'url' => ['/site/about']];
        $menuItems[] = ['label' => Yii::t('app', 'Contact'), 'url' => ['/site/contact']];
    }

    // display Users to admin+ roles
    if (Yii::$app->user->can('admin')){
        $menuItems[] = ['label' => Yii::t('app', 'Users'), 'url' => ['/user/index']];
    }

    // display Logout to logged in users
    if (!Yii::$app->user->isGuest) {
        //add items, rooms etc. to menu for logged in users
        $menuItems[] = ['label' => Yii::t('app', 'Personnel'), 'url' => ['/person/index']];
        $menuItems[] = ['label' => Yii::t('app', 'Items'), 'url' => ['/item/index']];
        $menuItems[] = ['label' => Yii::t('app', 'Locations'), 'url' => ['/location/index/']];
        $menuItems[] = ['label' => Yii::t('app', 'Buildings'), 'url' => ['/building/index/']];
        $menuItems[] = ['label' => Yii::t('app', 'Rooms'), 'url' => ['/room/index/']];
        $menuItems[] = [
            'label' => Yii::t('app', 'Logout'). ' (' . Yii::$app->user->identity->username . ')',
            'url' => ['/site/logout'],
            'linkOptions' => ['data-method' => 'post']
        ];
    }

    // display Signup and Login pages to guests of the site
    if (Yii::$app->user->isGuest) {
        $menuItems[] = ['label' => Yii::t('app', 'Signup'), 'url' => ['/site/signup']];
        $menuItems[] = ['label' => Yii::t('app', 'Login'), 'url' => ['/site/login']];
    }

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

    NavBar::end();
    ?>

如您所见,我的菜单中有 locationroombuilding。但是,我只想在主菜单中有 location,在 location 的 子菜单中只有 roombuilding -菜单。有没有简单的方法来做到这一点?

【问题讨论】:

    标签: php html yii navbar


    【解决方案1】:

    我不知道你的子菜单到底是什么,如果你只想生成一个下拉列表,你可以

    // display Logout to logged in users
    if (!Yii::$app->user->isGuest) {
        //add items, rooms etc. to menu for logged in users
        $menuItems[] = [
            'label' => Yii::t('app', 'Locations'),
            'url' => ['/location/index/'],
            'items' => [
                ['label' => Yii::t('app', 'Personnel'), 'url' => ['/person/index']],
                ['label' => Yii::t('app', 'Items'), 'url' => ['/item/index']],
                ['label' => Yii::t('app', 'Buildings'), 'url' => ['/building/index/']],
                ['label' => Yii::t('app', 'Rooms'), 'url' => ['/room/index/']],
                [
                    'label' => Yii::t('app', 'Logout'). ' (' . Yii::$app->user->identity->username . ')',
                    'url' => ['/site/logout'],
                    'linkOptions' => ['data-method' => 'post']
                ],
            ],
        ];
    }
    

    【讨论】:

    • 谢谢,这就是我想要的! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多