2011-11-28 81 views
0

在更新与CodeIgniter/Datamapper的一对多关系时遇到问题。在我看来,我有一种观点,即当一对多关系被更新时。关系表中的现有记录将被删除,并添加新的关系。这似乎并非如此。CodeIgniter/Datamapper - 更新一对多关系

使用以下,每次增加新的记录到关系表:

$item->save($banners); 

所创建正确的关系,但我所期待的只是包含在$banners的对象包括在关系表中未任何历史项目。

这是正确的功能,如果是的话,什么是使这个更新过程的最佳方法工作?

谢谢

+0

我认为你有正确的想法,但我相信你应该在试图保存已经相关的“一对多”关系的'一方'时收到错误信息。我们可以看到你的模型的代码? – swatkins

回答

1

一对多并不意味着“只有一个可以相关”。请参阅Wikipedia

这只是表示关系的“一边”包含外键。

如果需要此行为,则需要手动重置现有关系。使用更新查询的最快捷方式是将'foreign_key'设置为NULL,其中'foreign_key'是要关联的对象的'id'值。