入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

thinkphp5.0.2 多对多模型中插入中间表字段不存在的解决办法

创建时间:2016-12-30 投稿人: 浏览次数:1263

最近我用thinkphp5.0.2写一个项目的时候,在使用框架中多对多模型进行对中间表额外属性插入的时候,发生了数据表字段不存在的错误,如下图
这里写图片描述
我中间表sxt_order_product的字段信息为
这里写图片描述

我通过对框架运行追踪调试中发现,在thinkphp/library/think/model/Relation.php第625行return $query->table($this->middle)->insert($pivot);中,$query 穿入table参数后,该对象获取的表的信息依旧是以前那个表的信息,并没有因为传入table而改变。
追究其原因在于:thinkphp/library/think/db/Query.php第1430行 return !empty($this->fieldType) ? $this->fieldType : $this->getTableInfo($options["table"], "type");中这个三元运算符的原因。改为return $this->getTableInfo($options["table"], "type");即可解决。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像