Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自定义Yii2时间戳行为_Php_Yii2_Yii2 Model - Fatal编程技术网

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()