根据模型属性值Yii2更改Gridview中的按钮操作(Change the button action in Gridview based on a model attribute value Yii2)
我用CRUD生成器生成了一个简单的应用程序......
在“视图”页面中,有一个操作列,其中包含一些按钮,如视图,更新,删除....
我想要的只是创建一个状态按钮....
如果状态为非活动状态,它应该询问我并将状态更改为活动状态,反之亦然这是我的代码:
'suspend' => function($url, $model) { return Html::a( '<span class="btn btn-xs btn-danger icon-remove bigger-80"style="margin-left:5px;"></span>', $url, ['title' => Yii::t('app', 'Inactivate')] ); }, 'activate' => function($url, $model) { return Html::a( '<span class="btn btn-xs btn-success icon-ok bigger-80"style="margin-left:5px;"></span>', $url, ['title' => Yii::t('app', 'Activate')] ); },I generated a simple application by CRUD generator...
In the View page there is a action column assigned with some buttons like view, update, delete....
all I want is to create a status button....
If the status is inactive it should ask me and change the status into active and vice versa This is my code:
'suspend' => function($url, $model) { return Html::a( '<span class="btn btn-xs btn-danger icon-remove bigger-80"style="margin-left:5px;"></span>', $url, ['title' => Yii::t('app', 'Inactivate')] ); }, 'activate' => function($url, $model) { return Html::a( '<span class="btn btn-xs btn-success icon-ok bigger-80"style="margin-left:5px;"></span>', $url, ['title' => Yii::t('app', 'Activate')] ); },最满意答案
试试这个......
[ 'class' => 'yii\grid\ActionColumn', 'template' => '{activate}{deactivate}', 'buttons' => [ 'activate' => function ($url, $model) { if($model->status==1) return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [ 'title' => Yii::t('app', 'Activate'), ]); }, 'deactivate' => function ($url, $model) { if($model->status==0) return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [ 'title' => Yii::t('app', 'Deactivate'), ]); }, ], 'urlCreator' => function ($action, $model, $key, $index) { if ($action === 'acivate') { $url =Url::toRoute(['controller/activate', 'id' => $model->id]); return $url; } if ($action === 'deactivate') { $url =Url::toRoute(['controller/deactivate', 'id' => $model->id]); return $url; } } ],你需要包括使用yii\helpers\Url; 在你看来
Try with this..
[ 'class' => 'yii\grid\ActionColumn', 'template' => '{activate}{deactivate}', 'buttons' => [ 'activate' => function ($url, $model) { if($model->status==1) return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [ 'title' => Yii::t('app', 'Activate'), ]); }, 'deactivate' => function ($url, $model) { if($model->status==0) return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [ 'title' => Yii::t('app', 'Deactivate'), ]); }, ], 'urlCreator' => function ($action, $model, $key, $index) { if ($action === 'acivate') { $url =Url::toRoute(['controller/activate', 'id' => $model->id]); return $url; } if ($action === 'deactivate') { $url =Url::toRoute(['controller/deactivate', 'id' => $model->id]); return $url; } } ],You need to include use yii\helpers\Url; in your view
更多推荐
发布评论