我想使用记录 id 设置status = 1
。但这不起作用。
我从索引页面发送id(波纹管图片)。
public function actionConfirm($id) {
$model = $this->findModel($id);
$model->status = 1;
if ($model->save()) {
return $this->render('index');
} else {
die('not work'); //this clause works
}
}
我该怎么办呢。
答案 0 :(得分:1)
您的验证存在一些问题。
原因可以是两个
$model = $this->findModel($id)
无法通过ID 解决方案:
首先,由于您正在进行更新,我建议您使用$model->update()
method
但是在这两种情况下(update()或save())如果你想强制更新字段,你应该将false传递给$ runValidation参数
public function actionConfirm($id) {
$model = $this->findModel($id);
$model->status = 1;
if ($model->update(false)) {
return $this->render('index'); // now this works
} else {
die('not work');
}
}
答案 1 :(得分:1)
假设您的按钮在操作列中命名为check 在您的操作列中,您可以调用
['class' => 'yii\grid\ActionColumn',
'template' => '{delete}{update}{viwq}{check}',
'buttons' => [
'check' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-check"></span>', $url, [
'title' => Yii::t('yii', 'Confirm'),
]);
}
],
'urlCreator' => function ($action, $model, $key, $index) {
if ($action === 'check') {
$url = Url::to(['/your-controller/confirm', 'id' =>$model->id]);
return $url;
}
}
]
],