根据谁登录确定要显示的菜单项

时间:2016-03-23 14:03:02

标签: yii2

我正在开发一个健康信息系统。这是我在Yii2的第一个项目。但是,我在某些方面遇到了麻烦。我想要在导航栏上显示菜单项取决于谁登录。例如,如果医生登录,我只想要与他相关的菜单项显示,护士,药剂师等的情况相同。认为这可以在布局中的main.php文件中的以下代码段中实现,但我不知道如何。请帮忙。

 $menuItems = [
        ['label' => 'Home', 'url' => ['/site/index']],
    ];
    if (Yii::$app->user->isGuest) {
        $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
    } else {
        $menuItems[] = '<li>'
            . Html::beginForm(['/site/logout'], 'post')
            . Html::submitButton(
                'Logout (' . Yii::$app->user->identity->username . ')',
                ['class' => 'btn btn-link']
            )
            . Html::endForm()
            . '</li>';
    }

1 个答案:

答案 0 :(得分:0)

您需要了解RBAC,http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#rbac

为每种类型的用户创建一个角色,并过滤掉该菜单。

    var x = [];
    x.push("<p class='test'>one</p>");
    x.push("<p class='test'>two</p>");
    x.push("<p class='test'>three</p>");
    x.push("<p class='test'>four</p>");
    

    alert(x.length); // 4

    x.push("<p class='test'>five</p>");

    alert(x.length); // 5