我正在使用 Eloquent 进行数据库处理,当我使用更新方法 created_at
更新记录时,时间戳被更改如何防止这种情况发生?
$post = Post::update([
'name' => $name
]);
updated_at
时间戳运行良好
最佳答案
如果您的模型中没有任何自定义设置。您可以像这样更新记录:
$id = 5; // here put id of record you want to update
$post = Post::findOrFail($id);
$post->name = $name;
$post->save();
仅使用此代码应更新 name
和 updated_at
时间戳(而不是 created_at
)。如果 created_at
也更新了,这意味着您可能有一些自定义模型设置或:
- 当记录更新时,您可能有数据库触发器更改
created_at
- 您可能已经注册了一些事件,这些事件会在更新记录时更改
created_at
- 确保数据库中
posts
表中的created_at
字段未定义为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- 这样每当您更新记录时,created_at
也将更新为当前日期时间
你还应该确保你的 Post
模型没有这样的东西:
const UPDATED_AT = 'created_at';
如果还会解释为什么 created_at
在您更新记录时会发生变化。
关于sql - Eloquent 更新方法更改 created_at 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479005/