php - 在 Laravel Eloquent 中自动更新日期时间字段的首选方法是什么
问题描述
我有一个包含 3 个日期时间字段的表:1. created_at
(由 Laravel 生成和处理),2. updated_at
(由 Laravel 生成和处理),3. custom_date
(由我创建,每次都会更改created_at
或updated_at
更改)。
我希望每次创建新记录或更改前两个字段时,custom_date
都会使用回调进行更新。如何在 Laravel 5.7 中使用 Eloquent 来实现这一点?
我已经尝试过使用增变器,但我会避免使用它,因为我每次都会更新该字段created_at
或updated_at
进行更改。
解决方案
您应该像这样对迁移文件进行配置:
$table->timestamp('custom_date')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
这样,该custom_date
字段将更新:
1.)当行与字段一起创建时created_at
(在你的 laravel 应用程序上)。
2.)当行与字段一起更新时updated_at
(在你的 laravel 应用程序上)。
3.) 当您直接对数据库进行任何修改时。
推荐阅读
- c# - 如何在导入到 SQL Server 数据库时删除 Excel 电子表格的顶部行
- dask - config.yaml 中 dask 分布式 pod、worker、CPU 和 RAM 之间的关系
- mysql - 删除表A中不存在表B引用且后跟表C的记录
- cmake - 如何创建库的调试和发布版本
- python - 为 pandas 中的列使用唯一值
- kubernetes - Google Cloud 部署和 Kubernetes 节点 IP 地址更改
- haskell - Haskell:如何找到用于阿特金筛子的方程的整数解的数量?
- c# - 从excel导入数据也得到空行
- lua - lua table.sort 没有正确排序
- python - 将 tf.contrib.opt.ScipyOptimizerInterface 与 tf.keras.layers 一起使用,损失不会改变