自定义时间戳复制$ model-> save()上的updated_at

时间:2018-10-19 23:09:26

标签: laravel laravel-5 eloquent timestamp

我有一个具有自定义时间戳的表和相关模型。迁移设置如下:

Schema::create('tests', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->timestamp('expire_at');
    $table->timestamps();
});

我已经像这样设置了模型:

class Test {
    protected $dates = [
       'expire_at'
    ];
}

当我尝试仅更新名称字段时,它会将expire_at字段设置为与updated_at字段相同,而不是简单地不对其进行更改。

$test = Test::find(1);
$test->name = "Changed Value";

// Until here, the expire_at timestamp has its true value
// but on save(), it changes expire_at to updated_at time.

$test->save();

protected $dates用法有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您需要使该列可为空(或删除默认值CURRENT_TIMESTAMP):

$table->timestamp('expire_at')->nullable();