一般开发后台是不需要view按钮的,所以需要隐藏掉view按钮:
在yii源码中有这样一个定义:
public $template = '{view} {update} {delete}';
所以我们可以在gridview中这样把view去掉就可以不显示view按钮了
[
'class' => 'yii\grid\ActionColumn',
'template' => '{update} {delete}',
],
对于自定义查看按钮链接:
源码中也有一个定义:
/**
* @var array button rendering callbacks. The array keys are the button names (without curly brackets),
* and the values are the corresponding button rendering callbacks. The callbacks should use the following
* signature:
*
* ```php
* function ($url, $model, $key) {
* // return the button HTML code
* }
* ```
*
* where `$url` is the URL that the column creates for the button, `$model` is the model object
* being rendered for the current row, and `$key` is the key of the model in the data provider array.
*
* You can add further conditions to the button, for example only display it, when the model is
* editable (here assuming you have a status field that indicates that):
*
* ```php
* [
* 'update' => function ($url, $model, $key) {
* return $model->status === 'editable' ? Html::a('Update', $url) : '';
* },
* ],
* ```
*/
public $buttons = [];
所以我们可以修改gridview的按钮:
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete}',
'buttons' => ['view' => function ($url, $model, $key) {
$icon = Html::tag('span', '', ['class' => "glyphicon glyphicon-eye-open"]);
$url = Url::to(['ad/index', 'pid' => $model->id]);
return Html::a($icon, $url);
}],
],