【发布时间】:2016-04-19 03:00:19
【问题描述】:
我刚刚遇到了 Eloquent (Laravel 5.2.10) 默认时间戳的障碍。默认情况下,$table->timestamps() 方法会在表中为您提供 created_at 和 updated_at 列,这些列会相应更新。
但是,当我尝试一些测试条目时,我注意到当您更新记录时,updated_at 字段会按原样更新,但 created_at 字段也会更新: 它的小时保持在创建时间,但分钟和秒会更新以匹配updated_at 字段。
如果太罗嗦,这里是一个例子:
+---------------------+---------------------+
| created_at | updated_at |
+---------------------+---------------------+
| 2016-01-13 17:13:27 | 2016-01-13 22:13:27 |
| 2016-01-13 16:14:41 | 2016-01-13 21:14:41 |
+---------------------+---------------------+
请注意,created_at 和 updated_at 字段的分钟和秒完全相同。
我试图查看设置了时间戳的Model类,但结果发现在更新记录时确实没有调用setCreatedAt()方法。
为什么会发生这种情况?
如何防止created_at字段发生变化? (更重要)
【问题讨论】:
标签: php mysql laravel laravel-5 laravel-5.2