yii2在使用GridView显示列表内容,最后操作栏目里面的查看、更新删除,根据后台设置路由权限自动显示或隐藏,查看源码后发现原来在\vendor\yiisoft\yii2\grid\ActionColumn.php文件里就有对应的属性可以设置了,例如需要判断按钮是否显示就可以设置visibleButtons属性以下红色部分代码即可。
[
'class' => 'yii\grid\ActionColumn',
//'template' => '{update} {delete}',
'visibleButtons' => [
'update' => \Yii::$app->user->can('buy/update'),
'delete' => \Yii::$app->user->can('buy/delete'),
'view' => \Yii::$app->user->can('buy/view'),
],
'buttons' => [
'delete' => function ($url, $model) {
return Html::a(' ',
$url.'&'.http_build_query($model->toArray()),
[
//'class'=>'w1-action-del a_delete',
'title' => Yii::t('yii', '删除'),
'aria-label' => Yii::t('yii', '删除'),
//'id'=>'a_delete',
'data-pjax'=>0,
'data-method'=>'post',
'data-confirm' => '您确定要删除此项吗?'
]
);
},
],
],
Yii::$app->user->can是判断用户路由权限。
button的delete是我自定义的内容,可以不用理会。