You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中useCurrentOnUpdate方法不生效 timestamp更新时未自动更新问题

问题原因及解决方案

1. 首要原因:Laravel版本不兼容

useCurrentOnUpdate() 是 Laravel 8.0 版本才正式加入的迁移方法,如果你的项目使用的 Laravel 版本低于 8.0,调用该方法不会报错但也不会生成对应的数据库字段属性,这是你遇到问题的最常见诱因。

2. 兼容所有版本的解决方法

直接使用原生SQL声明字段属性,替换你的updated_at字段定义代码即可:

// 需确保顶部引入了DB门面,或者直接写\DB::raw
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));

就算你使用的是 8.0 及以上版本的 Laravel,这种原生写法也比框架封装的方法更稳定,不会出现不生效的问题。

3. 验证是否生效

重新执行迁移后,执行SQL命令show create table user查看完整建表语句,只要updated_at字段的定义里包含ON UPDATE CURRENT_TIMESTAMP,就说明配置生效,后续更新数据时字段会自动刷新时间。

内容的提问来源于stack exchange,提问作者user16542536

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:45:02