yii2 中的 ActionColumn
ActionColumn in yii2
ActionColumn
默认有view
、update
、delete
。
我想添加一个按钮 "made" 将任务标记为完成,( 我在数据库调用中有一列 status 得到一个 int 0 或 1 ),
所以我想要一个函数来实现将任务标记为已完成的逻辑,有人可以帮助我吗?
这个例子我在论坛上搞到的,但是不是很懂
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete} {made}',
'buttons'=> [
'made' => function () {
return Html::button('<span class="glyphicon glyphicon-ok"></span>', [
'title' => Yii::t('yii', 'made'),
]);
}
],
你可以这样做:
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete} {made}',
'buttons'=> [
...
'made' => function ($url, $model) {
if($model->status === $model::STATUS_SUSPENDED){
return Html::a("Activate", $url, [
'title' => "Activate",
'class' => 'btn btn-xs btn-success',
'data' => [
'method' => 'post',
'confirm' => 'Are you sure? This will Activate this.',
],
]);
}
return Html::a("Suspend", $url, [
'title' => "Suspend",
'class' => 'btn btn-xs btn-danger',
'data' => [
'method' => 'post',
'confirm' => 'Are you sure? This will Suspend this.',
],
]);
}
],
]
然后在您的控制器 actionMade()
中创建方法,您可以在其中检查 post
请求,并对指定的 id
执行必要的操作。希望这会有所帮助。
ActionColumn
默认有view
、update
、delete
。
我想添加一个按钮 "made" 将任务标记为完成,( 我在数据库调用中有一列 status 得到一个 int 0 或 1 ), 所以我想要一个函数来实现将任务标记为已完成的逻辑,有人可以帮助我吗?
这个例子我在论坛上搞到的,但是不是很懂
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete} {made}',
'buttons'=> [
'made' => function () {
return Html::button('<span class="glyphicon glyphicon-ok"></span>', [
'title' => Yii::t('yii', 'made'),
]);
}
],
你可以这样做:
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete} {made}',
'buttons'=> [
...
'made' => function ($url, $model) {
if($model->status === $model::STATUS_SUSPENDED){
return Html::a("Activate", $url, [
'title' => "Activate",
'class' => 'btn btn-xs btn-success',
'data' => [
'method' => 'post',
'confirm' => 'Are you sure? This will Activate this.',
],
]);
}
return Html::a("Suspend", $url, [
'title' => "Suspend",
'class' => 'btn btn-xs btn-danger',
'data' => [
'method' => 'post',
'confirm' => 'Are you sure? This will Suspend this.',
],
]);
}
],
]
然后在您的控制器 actionMade()
中创建方法,您可以在其中检查 post
请求,并对指定的 id
执行必要的操作。希望这会有所帮助。