比如在Model:Deal中定义了hasone:Deal hasone Detail,
但是Detail的表定义中没有为Detail.deal_id设置相应的index和外键关联,而且没有把Detail.deal_id设置成unique的字段。
那么当程序逻辑出现错误,在Detail表格中对同一个Deal保存了多条数据时,这时CakePHP对数据的联合查询处理将处于混乱的状态。
$this->Deal->find('all',...) 查询结果将返回多条冗余记录。这里findAll在CakePHP中默认查询所有关联数据。除非设置recursive=-1。
解决方法是去除Detail表格中的冗余数据并设置好Detail和Deal表格之间的外键关联以及Detail.deal_id字段的唯一性属性。
最新评论