3.1.3 - 普通 - 未处理
在做MONY_TO_MANY关联添加时发现,中间表会删除已经有的数据,然后再添加一条数据,导致最后永远只有一条数据,查了一下代码发现程序设计是Add和Save走的是同一个流程,即先删除中间表的数据,再添加一条数据,删除过程中在转换$where语句时,被Core/Model.class.php中的_parseOptions函数在做字段验证时把中间表的外键字段给过滤掉了,因此添加的$where永远为空,即删除整张表。其实开发者当前的意图应该是中间表是不做字段验证的,因此需要Core/Model.class.php的550行由“if(isset($options['where']) && is_array($options['where']) && !empty($fields) && !isset($options['join'])) ”改成“if(!isset($options['table']) && isset($options['where']) && is_array($options['where']) && !empty($fields) && !isset($options['join']))“,这样就没有问题了。 