与 CodeIgniter/Datamapper 更新一对多关系时遇到问题。在我的脑海中,我认为当一对多的关系被更新时。关系表中的现有记录将被删除并添加新关系。情况似乎并非如此。
使用以下内容,每次将新记录添加到关系表中:
$item->save($banners);
创建的关系是正确的,但我希望只有其中包含的对象包含$banners
在关系表中,而不是任何历史项目。
这是正确的功能吗?如果是,使此更新过程正常工作的最佳方法是什么?
谢谢
与 CodeIgniter/Datamapper 更新一对多关系时遇到问题。在我的脑海中,我认为当一对多的关系被更新时。关系表中的现有记录将被删除并添加新关系。情况似乎并非如此。
使用以下内容,每次将新记录添加到关系表中:
$item->save($banners);
创建的关系是正确的,但我希望只有其中包含的对象包含$banners
在关系表中,而不是任何历史项目。
这是正确的功能吗?如果是,使此更新过程正常工作的最佳方法是什么?
谢谢
一对多并不意味着“只有一个可以关联”。见维基百科
它只是意味着关系的“一”端包含外键。
如果您想要这种行为,您需要手动重置现有关系。这使用更新查询最快,您将“foreign_key”设置为 NULL,其中“foreign_key”是要关联的对象的“id”值。