Yii2 - 根据用户类型在导航栏中制作下拉行 disable/readOnly

Yii2 -Make dropdown row in navbar disable/readOnly based on user type

有没有人可以帮助我? 我在我的布局选项卡菜单上做了一个下拉菜单。 这是我的下拉菜单。

[
      'label' => '(' . Yii::$app->user->identity->username . ')',
      'items' => [
          ['label' => 'Change Password', 'url' => ['/site/changepassword']],
          ['label' => 'User Setting', 'url' => ['/user']],
          ['label' => 'test', 'url' => ['/leave-record/leave']],
          '<li class="dropdown-header"></li>',
          ['label' => 'Logout', 'url' => ['/site/logout'],
                                'linkOptions' => ['data-method' => 'post']],
      ],
    ],

我在用户模型中有 3 个用户类型。 1. 主管理员 2.普通管理员 3.普通用户

如果管理员登录,他可以访问下拉列表中的所有行。然后,如果正常的管理员登录行 "User Setting" 变为禁用。

对于项目,您可以使用 visible 属性指定适当的条件

例如:

[
      ['label' => 'Change Password', 'url' => ['/site/changepassword']],
      [
         'label' => 'User Setting', 
          'url' => ['/user'],
          'visible' => Yii::$app->User->can('masterAdmin'),
      ],
 ],

对于两种用户类型,您可以使用 $check

$check = ((Yii::$app->User->can('masterAdmin') || Yii::$app->User->can('admin')) ? TRUE : FALSE;

.

 ...
 'label' => 'User Setting', 
  'url' => ['/user'],
 'visible' =>$check,