使用CodeIgniter/Datamapper更新一对多关系时出现问题。在我的脑海中,我有这样的想法:当一对多关系被更新时。关系表中的现有记录将被删除,并添加新的关系。事实似乎并非如此。
使用以下命令,每次将新记录添加到关系表中:
$item->save($banners);创建的关系是正确的,但我期望关系表中只包含$banners中包含的对象,而不是任何历史项。
这是正确的功能吗?如果是,使此更新过程工作的最佳方法是什么?
谢谢
发布于 2011-12-24 04:10:20
一对多并不意味着“只有一个是相关的”。请参阅Wikipedia
它只是意味着关系的“一”端包含外键。
如果您想要此行为,则需要手动重置现有关系。使用update查询最快,在update查询中将'foreign_key‘设置为NULL,其中'foreign_key’是要关联的对象的'id‘值。
https://stackoverflow.com/questions/8296452
复制相似问题