我有一个具有自定义时间戳的表和相关模型。迁移设置如下:
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
用法有什么问题吗?
答案 0 :(得分:1)
您需要使该列可为空(或删除默认值CURRENT_TIMESTAMP
):
$table->timestamp('expire_at')->nullable();