我有一个数据库中特定表的GridView
。此表有一个状态列,该列为 0 or 1
。
我想在状态列为 0 的行的GridView
中添加一个更新操作按钮,只是为了帮助管理员更新它。
我试过了,但有些不对劲:
[
'attribute' => 'Status',
'format' => 'raw',
'value' => function ('backend'models'Document $model) {
if ($model->Status == 0) {
['class' => 'yii'grid'ActionColumn',
'template' => '{Update}',
];
}
},
],
最简单的方法是从 ActionColumn 类创建扩展,并且只为您的状态呈现。
Class StatusActionColumn extends ActionColumn
{
public $testStatus = 0
protected function renderDataCellContent($model, $key, $index)
{
if ($model->Status == $this->testStatus) {
return parent::renderDataCellContent($model, $key, $index);
}
}
}
或者buttons
,您可以通过
[
'class' => ActionColumn::className(),
'buttons' => [
'update' => function ($url, $model, $key) {
if ($model->Status == 0 ) {
$options = [
'title' => Yii::t('yii', 'Update'),
'aria-label' => Yii::t('yii', 'Update'),
'data-pjax' => '0',
];
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, $options);
}
},
],
],
我会做第一种方法,因为通过这种方式,您还可以轻松添加视图、更新或其他自定义按钮。