【问题标题】:Action buttons only visible to admin yii2操作按钮仅对管理员 yii2 可见
【发布时间】:2016-02-25 10:00:40
【问题描述】:

我尝试添加额外的操作按钮。管理员仅在单击数据库中单个字段中的按钮更新后才能查看此按钮。

  <p>
   <?php

    if(!Yii::$app->user->isGuest ){
      echo Html::a('Recommended', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']);
    echo  Html::a('Not Recommended', ['delete', 'id' => $model->id], [
        'class' => 'btn btn-danger',
        'data' => [
            'confirm' => 'Are you sure you want to reject this application?',
            'method' => 'post',
        ],
    ]);
  } else if(Yii::$app->user->can('admin')){

  }
    ?>

</p>

我的问题是我有 3 个用户:applicantfacultyadmin(或 hod)。在这种情况下,在教师推荐后,管理员(或 hod)批准了请假。

我创建了请假申请和推荐的教师,所以现在我想在管理员登录网站时获取推荐数据。

【问题讨论】:

  • 您在使用 RBAC 吗?如果不是,您如何识别您的管理员?
  • 你如何识别管理员?
  • 我做了什么改变简要说明一下
  • 我已经发布了一个答案,希望是你想要的

标签: php yii2


【解决方案1】:

如果 admin 是用户名,你应该这样:

<p>
   <?php

    if(!Yii::$app->user->isGuest ){
      echo Html::a('Recommended', ['update', 'id' => $model->id], 
                  ['class' => 'btn btn-primary']);
      echo Html::a('Not Recommended', ['delete', 'id' => $model->id], [
        'class' => 'btn btn-danger',
        'data' => [
            'confirm' => 'Are you sure you want to reject this application?',
            'method' => 'post',
        ],
    ]);
  } else if(Yii::$app->user->identity->username == 'admin' ){
      echo Html::a('Your Button Label for Admin',
           ['yourActionForAdmin', 'id' => $model->id], 
           ['class' => 'btn btn-primary']);
  }
    ?>

</p>

【讨论】:

  • 先生,我有疑问。我可以为不同的用户在我的同一个活动视图中设置一些条件以获得不同的输出吗?如果可以的话我把这些条件放在哪里
  • 通常,如果不同的输出与进程逻辑有关,则更好的宫殿是动作(在控制器中),否则不同的输出与您在视图中执行此操作的方面有关.. ..无论如何,您可以为此发布一个新的单独问题,并附上您需要的示例。
猜你喜欢
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
相关资源
最近更新 更多