2011-11-28 82 views
0

在更新與CodeIgniter/Datamapper的一對多關係時遇到問題。在我看來,我有一種觀點,即當一對多關係被更新時。關係表中的現有記錄將被刪除,並添加新的關係。這似乎並非如此。CodeIgniter/Datamapper - 更新一對多關係

使用以下,每次增加新的記錄到關係表:

$item->save($banners); 

所創建正確的關係,但我所期待的只是包含在$banners的對象包括在關係表中未任何歷史項目。

這是正確的功能,如果是的話,什麼是使這個更新過程的最佳方法工作?

謝謝

+0

我認爲你有正確的想法,但我相信你應該在試圖保存已經相關的「一對多」關係的'一方'時收到錯誤信息。我們可以看到你的模型的代碼? – swatkins

回答

1

一對多並不意味着「只有一個可以相關」。請參閱Wikipedia

這只是表示關係的「一邊」包含外鍵。

如果需要此行爲,則需要手動重置現有關係。使用更新查詢的最快捷方式是將'foreign_key'設置爲NULL,其中'foreign_key'是要關聯的對象的'id'值。