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

时间:2017-06-05 04:55:25

标签: php yii2 navbar yii2-advanced-app yii2-basic-app

有人可以帮助我吗? 我在布局标签菜单上下拉。 这是我的下拉列表。

[
      '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.普通用户

如果主管理员登录,他可以访问下拉列表中的所有行。然后,如果正常管理员登录行“用户设置”变为禁用。

1 个答案:

答案 0 :(得分:0)

对于项目,您可以使用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,