首页 > 解决方案 > 在 Laravel Eloquent 中自动更新日期时间字段的首选方法是什么

问题描述

我有一个包含 3 个日期时间字段的表:1. created_at(由 Laravel 生成和处理),2. updated_at(由 Laravel 生成和处理),3. custom_date(由我创建,每次都会更改created_atupdated_at更改)。

我希望每次创建新记录或更改前两个字段时,custom_date都会使用回调进行更新。如何在 Laravel 5.7 中使用 Eloquent 来实现这一点?

我已经尝试过使用增变器,但我会避免使用它,因为我每次都会更新该字段created_atupdated_at进行更改。

标签: phplaraveleloquent

解决方案


您应该像这样对迁移文件进行配置:

$table->timestamp('custom_date')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));

这样,该custom_date字段将更新:

1.)当行与字段一起创建时created_at(在你的 laravel 应用程序上)。

2.)当行与字段一起更新时updated_at(在你的 laravel 应用程序上)。

3.) 当您直接对数据库进行任何修改时。


推荐阅读