如何在gridview YII2高级模板中为特定行添加操作按钮?

时间:2016-01-22 08:15:02

标签: php yii2

我对数据库中的特定表有一个GridView。此表的状态列为0 or 1

我想在GridView中为状态列为0的行添加更新操作按钮,以帮助管理员更新此内容。

我试过了,但出了点问题:

 [
       'attribute' => 'Status',
       'format'    => 'raw',
        'value'    => function (\backend\models\Document $model) {
                         if ($model->Status == 0) {
                                ['class' => 'yii\grid\ActionColumn',
                                    'template' => '{Update}',
                                ];
                            } 
                        },
],

1 个答案:

答案 0 :(得分:0)

最简单的方法是从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);
            }
        },
    ],
],

我会采用第一种方法,因为通过这种方式,您可以轻松添加视图,更新或其他自定义按钮。