使用3.1.3关联模型的MANY_TO_MANY出现错误

浏览:641 发布日期:2013/11/28
3.1.3 - 严重 - 未处理
使用ThinkPHP 3.1.3关联模型的MANY_TO_MANY进行添加和删除时出现错误。

准备工作:
1、创建3张表,主表(blog)、中间表(blog_attr)、关联表(attribute),主表和关联表通过中间表实现多对多的关联关系
2、事先向关联表(attribute)添加一些数据
3、创建BlogRelationModel
4、为BlogRelationModel添加_link的Protected属性,配置MANY_TO_MANY的关联关系
5、向主表blog添加一条数据
6、从主表blog删除一条数据

bug的具体表现为:
1、向主表blog添加一条数据时,TP先把中间表blog_attr的全部数据清空,然后在中间表blog_attr中为这条主表数据添加关联数据,这样导致其它主表数据的关联数据都不存在了。
2、从主表blog删除一条数据时,TP会把中间表的全部数据清空,而不是删除与这条主表数据相关的关联数据,这样导致其它主表数据的关联数据都不存在了。

对于以上2种情况,打开Trace中的SQL标签,其中都存在一条SQL语句为:
DELETE FROM '中间表'
评论()
后面还有条评论,点击查看>>