如何使 GridView 按钮更新和删除仅对管理员可见?

MKD*_*MKD 1 yii2

我是 Yii2 的新手,我有 3 种user rights

Adminmoderatoruser。我有我的GridView,我不想向用户显示UpdateDelete按钮,只显示GridView. 我该怎么做?

这是我的actionCreate,有一个输入表单:

    public function actionCreate()
{
    $model = new Project();
    $model->scenario = Project::SCENARIO_CREATE;

    if ($model->load(Yii::$app->request->post())) {
        if ($model->save()) {
            Yii::$app->getSession()->setFlash('success', Yii::t('app', 'Skelbimas s?kmingai prid?tas!'));
            return $this->redirect(['index']);
        }
    }
    return $this->render('create', [
        'model' => $model,
    ]);
}   
Run Code Online (Sandbox Code Playgroud)

我试图根据this搜索信息,但找不到有用的信息。感谢您提供任何帮助或信息。

Chu*_*hux 5

为此,您必须使用ActionColum 类的$visibleButtons属性。

所以:

'visibleButtons' = [
    'update' => Yii::$app->user->can('update'), // or whatever condition
    'delete' => Yii::$app->user->can('update')
]
Run Code Online (Sandbox Code Playgroud)

等等。visibleButtons 数组上的每个 Key 都是按钮的名称。

Yii 框架的指南