您的位置:首页 > 编程语言 > PHP开发

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

2016-12-30 09:27 232 查看
最近我用thinkphp5.0.2写一个项目的时候,在使用框架中多对多模型进行对中间表额外属性插入的时候,发生了数据表字段不存在的错误,如下图



我中间表sxt_order_product的字段信息为



我通过对框架运行追踪调试
4000
中发现,在
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');即可解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thinkphp 调试
相关文章推荐