Php Yii 2菜单显示列表取决于用户

Php Yii 2菜单显示列表取决于用户,php,menu,navbar,yii2,Php,Menu,Navbar,Yii2,如何配置或自定义我的菜单,例如,如果我是管理员用户,我可以看到导航栏上的所有内容,例如,在我的情况下,用户(可以创建、更新或删除的用户列表),存储(与用户一样,这是我可以配置特定存储的地方),交易然后单击注销按钮。但是当一个普通用户/员工登录时,他/她将看到的唯一东西是事务菜单和一个注销按钮 请帮忙 编辑: 以下是我的菜单渲染代码: <?php echo Menu::widget([ 'options' => ['id' => "nav-mobile",

如何配置或自定义我的菜单,例如,如果我是管理员用户,我可以看到导航栏上的所有内容,例如,在我的情况下,用户(可以创建、更新或删除的用户列表),存储(与用户一样,这是我可以配置特定存储的地方),交易然后单击注销按钮。但是当一个普通用户/员工登录时,他/她将看到的唯一东西是事务菜单和一个注销按钮

请帮忙

编辑: 以下是我的菜单渲染代码:

<?php
    echo Menu::widget([
        'options' => ['id' => "nav-mobile", 'class' => 'right side-nav'],
        'items' => [
          ['label' => 'Home', 'url' => ['/site/index']],
          ['label' => 'About', 'url' => ['/site/about']],
          ['label' => 'Contact', 'url' => ['/site/contact']],
          Yii::$app->user->isGuest ?
              ['label' => 'Login', 'url' => ['/site/login']] :
              ['label' => 'Logout (' . Yii::$app->user->identity->username . ')',
                  'url' => ['/site/logout'],
                  'linkOptions' => ['data-method' => 'post']
              ],
      ],
    ]);
?>

项目
数组中的每个项目都有
可见属性。在那里传递返回布尔值的表达式

'items' => [
    // Show users section for administrators only
    [
        'label' => 'Users',
        'url' => ['/users/index'],
        'visible' => !Yii::$app->user->isGuest && Yii::$app->user->identity->user_type == User::USER_TYPE_SUPER_ADMIN,
    ],
],
Yoy还可以将此条件放在附加模型方法中以避免重复,例如
User
模型中的
isAdmin()

正式文件:


    • 我认为这个函数在这里也很有用

      \Yii::$app->user->can(“后端用户索引”)


      如何在应用程序中确定用户角色?你实现了RBAC吗?或者例如,角色存储在单独列的users表中?Hi@arogachev,我没有使用RBAC。我使用了你提到的第二个,在我的用户表的特定列中存储了一个用户类型的用户。显示菜单呈现代码。我只是在代码中粘贴了
      'visible'=>Yii::$app->user->identity->role==user::role\u ADMIN,
      ,我得到了一个错误:
      获取未知属性:app\models\user::role
      ,这只是一个例子,根据您的姓名更正。我应该在
      USER\u-TYPE\u-ADMIN
      常量中添加什么?如何通过
      USER\u-TYPE
      确定ADMIN?我的
      USER\u-TYPE
      可以是
      SuperAdmin
      BizAdmin
      BizStaff
      。我将它们放在我的数据库(phpmyadmin)中的
      enum
      'items' => [
          // Show users section for administrators only
          [
              'label' => 'Users',
              'url' => ['/users/index'],
              'visible' => \Yii::$app->user->can("BackendUsersIndex"),
          ],
      ],