CodeIgniter / Datamapper - 更新一对多关系

时间:2011-11-28 13:26:27

标签: codeigniter relationships codeigniter-datamapper

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

使用以下内容,每次都会在关系表中添加新记录:

$item->save($banners);

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

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

由于

1 个答案:

答案 0 :(得分:1)

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

这只意味着关系的“一”侧包含外键。

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