我正在尝试更新“页面”列,但是它不起作用。我想通过将数据从4更改为5仅更新一列。数据类型是整数。
查看
<div class="row">
<div class="col-sm-12 text-center">
<?= Html::a('Add as memoriam', ['update-status', 'id' => $model->ID], [
'class' => 'btn bg-maroon',
'data' => [
'confirm' => 'Are you sure you want to add '.$model->name.' into the dearly departed?',
'method' => 'post',
],
]) ?>
</div>
</div>
控制器
public function actionUpdateStatus($id)
{
$model = $this->findModel($id);
$model->page = 5;
if ($model->save())
$this->redirect(array('view', 'id' => $model->id));
return $this->redirect(['my-obituary']);
}
答案 0 :(得分:0)
1。使用save()
当insert()为true时,此方法将调用$isNewRecord,而当update()为false时,该方法将调用$isNewRecord。
public function actionUpdateStatus($id)
{
$model = $this->findModel($id);
$model->page = 5;
if ($model->save(true, ['page'])) {
$this->redirect(array('view', 'id' => $model->id));
}
return $this->redirect(['my-obituary']);
}
当不需要数据验证并且仅需要更新一小部分属性时,此方法是update()的快捷方式。您可以将要更新的属性指定为名称列表或名称/值对。如果是后者,则将相应地修改相应的属性值。然后,该方法会将指定的属性保存到数据库中。
请注意,此方法将不会执行数据验证,也不会触发事件。
public function actionUpdateStatus($id)
{
$model = $this->findModel($id);
$model->page = 5;
if ($model->updateAttributes(['page' => 5])) {
$this->redirect(array('view', 'id' => $model->id));
}
return $this->redirect(['my-obituary']);
}