ThinkPHP 新项目模型无法获取自增 ID 问题排查

2025 年 5 月 27 日 星期二(已编辑)
/
9
这篇文章上次修改于 2025 年 5 月 27 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。

ThinkPHP 新项目模型无法获取自增 ID 问题排查

经过

用 ThinkPHP8 新建了一个小项目,为了省力直接把先前的用户模型代码拷贝过来了。

但是模型 save 后无法获取到自增 ID?于是我开始排查代码,发现代码应该没问题;又排查环境,又让 GPT 帮我修改,都无法解决。

后来我对比了新项目和老项目的区别是 composer.json 中,"topthink/think-orm": "^3.0" 变成了 "topthink/think-orm": "^3.0|^4.0"

我尝试将 think-orm 版本强制回退到 3.x,然后就正常了。

因为 tp8 文档的模型部分中仍然有模型字段的定义,我也没仔细看 think-orm 的文档,所以一时摸不着头脑。

遂在仓库发了 issue 提问,才得知 4.x 无需定义模型字段 $schema。

作者流年给了文档链接,我又仔细看了眼,才发现原来有一笔带过:“不需要定义schema属性(会自动获取)” (不知道各位用 thinkphp 开发网站的,是不是也像我一样看 tp 文档总看的云里雾里……)

但是我定义 schema 已经成习惯了,一时之间适应不了,所以还是用 3.x 先开发着。 (不过我好奇 schema 不是自动获取的吗?那手动定义为什么会影响到自增 id 的获取)

碎碎念

说实话很早就想弃用 tp 了,只不过实在是没有精力去研究别的框架。

我看中 webman 框架已经很久了,只不过一直没时间去摸索,感觉最近也要提上日程了。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...