福州网站建设>网站新闻>thinkphp6专区

[江湖救急]tp6模型主键id为非自增字符串,save保存不成功

发布日期:2022-11-24浏览次数:270 来源:福州网站建设 标签: thinkPHP6 模型保存数据 主键非自增

忽然发现一个问题,模型主键为非自增的字符串类型(有时候主键不想自增),通过模型的save保存数据不成功(也没有自己开启事务),也不报错(日志打印了insert into语句,数据库里面没有数据),用Db::name('demo')->insert($data)可以正常保存。
controller示例代码如下,数据库为pgsql,环境php8.1:
$demo = new Demo;
$demo->id = Utils::create_uuid();//生成UUID
$demo->title = "标题";
$demo->name = "名称";
$demo->status = 0;
$rs = $demo->save();
Log::debug("save rs:" . $rs);
日志:[2022-09-27T11:16:00+08:00][sql] CONNECT:[ UseTime:0.006843s ] pgsql:dbname=votedb;host=127.0.0.1;port=5432
[2022-09-27T11:16:00+08:00][sql] select fields_name as "field",fields_type as "type",fields_not_null as "null",fields_key_name as "key",fields_default as "default",fields_default as "extra" from table_msg('demo'); [ RunTime:0.013151s ]
[2022-09-27T11:16:00+08:00][sql] INSERT INTO demo (id , title , name , status , create_time , update_time) VALUES ('9aafe29a-2e9a-4607-859e-5db97346cc81' , '标题' , '名称' , 0 , '2022-09-27 11:16:00.703800' , '2022-09-27 11:16:00.703809') [ RunTime:0.000406s ]
[2022-09-27T11:16:00+08:00][debug] save rs:1
难道通过模型保存数据主键必须是自增吗?百思不得其解

以上是由福州网站建设的小编为你分享了"[江湖救急]tp6模型主键id为非自增字符串,save保存不成功"文章,如果你在这方面有什么问题,随时联系我们

网友评论

  • kuxia 11月24日

    建议你弄个自增的id 然后你的另外一个用uuid来。规范建表

  • SVortex 11月23日

    唉,项目一直出问题,查来查去发现是这个问题。非要自增主键才能使用save未免有点智障,但是确实没从手册里找到解决方案。

thinkphp6专区有关的文章
与标签 thinkPHP6 模型保存数据 主键非自增 有关的文章
如果您有什么问题,欢迎咨询我们客服! 点击QQ咨询