0

与 CodeIgniter/Datamapper 更新一对多关系时遇到问题。在我的脑海中,我认为当一对多的关系被更新时。关系表中的现有记录将被删除并添加新关系。情况似乎并非如此。

使用以下内容,每次将新记录添加到关系表中:

$item->save($banners);

创建的关系是正确的,但我希望只有其中包含的对象包含$banners在关系表中,而不是任何历史项目。

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

谢谢

4

1 回答 1

1

一对多并不意味着“只有一个可以关联”。见维基百科

它只是意味着关系的“一”端包含外键。

如果您想要这种行为,您需要手动重置现有关系。这使用更新查询最快,您将“foreign_key”设置为 NULL,其中“foreign_key”是要关联的对象的“id”值。

于 2011-12-23T20:10:19.893 回答