Eloquent更新方法更改created_at时间戳

时间:2015-12-27 09:01:46

标签: sql database laravel eloquent

我正在使用Eloquent进行数据库处理,当我使用更新方法created_at更新记录时更改时间戳如何防止这种情况发生?

$post = Post::update([
   'name' => $name
]);

updated_at时间戳工作正常

1 个答案:

答案 0 :(得分:2)

如果您的模型中没有任何自定义设置。您可以像这样更新记录:

$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表中的created_at字段未定义为posts - 这样每当您更新记录时,CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP也会更新为当前日期时间

您还应该确保您的created_at模型不具备以下内容:

Post

如果还可以解释更新记录时更改const UPDATED_AT = 'created_at'; 的原因。