Php 自定义Yii2时间戳行为
我的模型中有行为Php 自定义Yii2时间戳行为,php,yii2,yii2-model,Php,Yii2,Yii2 Model,我的模型中有行为 public function behaviors() { return [ [ 'class' => SluggableBehavior::className(), 'attribute' => 'title', // 'slugAttribute' => 'slug', ], [ 'class' =>
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'title',
// 'slugAttribute' => 'slug',
],
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'created_at',
'updatedAtAttribute' => 'updated_at',
'value' => time(),
],
];
}
一切正常。但我需要的是,只有一次行动是行不通的。
有必要在actionView中不更改“update_at”属性。我的行动观点:
$model = $this->findModel($id);
$model->views++;
$model->save();
如何尽可能正确地执行此操作?使用:
$model->save(false, ['views']);
第一个参数确定是否应运行验证(在本例中不需要),第二个参数确定应保存的属性
或者(哪个更好)使用:
$model->save(false, ['views']);
第一个参数确定是否应运行验证(在本例中不需要),第二个参数确定应保存的属性
或者(哪一个更好)您可以用特殊的方法更新它
你可以用特殊的方法更新它 数据库中的“更新位置”不变。但在视图(渲染)中,仍在更改属性“update_at”。
$model->refresh()
在保存到数据库后,“updated_at”不会更改。但在视图(渲染)中,保存后仍在更改属性“update_at”。$model->refresh()