ThinkPHP 数据库配置文件时间字段自动写入【省事】
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
ThinkPHP自动写入create_time和update_time需在database.php设置auto_timestamp为true或'datetime',字段名必须为create_time和update_time,字段类型需与配置一致(如int或datetime),仅通过模型操作生效,使用Db类无效。全局关闭后可在模型单独启用。
想让 ThinkPHP 自动帮你写好 create_time 和 update_time?直接改数据库配置文件确实是最省事的方式——但前提是,你得把配对、匹配、不遗漏这三件事做全,否则“省事”就变成“查半天”。
一、database.php 里只改这一项
打开 config/database.php,找到 'auto_timestamp' 这一行,配置其实很简单:
- 设为
true:自动写入整型时间戳(int类型字段) - 设为
'datetime':自动写入Y-m-d H:i:s格式字符串(对应DATETIME或TIMESTAMP字段) - 设为
false或删掉该配置:全局关闭,模型级配置才起作用
这里有个坑需要注意:'auto_timestamp' => 'datetime' 必须搭配数据库字段类型为 DATETIME 或 TIMESTAMP;如果你字段是 INT 却配成 'datetime',写入就会失败,或者存成空值,查半天都查不出原因。
二、字段名和类型必须提前对齐
全局配置不认自定义字段名,默认只处理 create_time 和 update_time。所以,数据库表里必须真实存在这两个字段,名字大小写、下划线一个都不能错。字段类型要和 auto_timestamp 值一致:
true→ 字段类型为INT'datetime'→ 字段类型为DATETIME或TIMESTAMP
另外,字段允许为 NULL,或设默认值(如 CURRENT_TIMESTAMP),避免严格模式下插入报错。这些小细节,一个都不能漏。
三、用对方法,不然白配
自动写入这个小家伙,只认模型操作,不认 Db 类:
- ✅ 正确:
$user = new User(); $user->name = 'xxx'; $user->sa ve(); - ❌ 无效:
Db::name('user')->insert(['name' => 'xxx']);—— 完全绕过模型,时间字段不会自动填
如果你用了 allowField(),记得时间字段得在白名单里,否则会被过滤掉。这个细节很容易被忽略,但偏偏是新手最容易踩的坑。
四、不想全局开?那就关掉它
当然,如果你不想全局开启,或者部分表没有时间字段,建议:
- 把
database.php中的'auto_timestamp'设为false或注释掉 - 只在具体模型里启用:
protected $autoWriteTimestamp = true;,再配字段名 - 这样更安全,避免新增表漏建时间字段导致插入失败
话说回来,这种方式虽然多了一步配置,但灵活性和可控性都更强,适合项目规模较大的场景。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













