2012-07-02 15 views
0

我有兩個模型:Action HABTM Image是否可以在CakePHP中使用saveAll將所有相關記錄一次性插入到HABTM中?

我沒有表單,因爲我使用cakephp之外的代碼生成Post數據。在文章中,我發送此數據到ActionController的要保存:

data[Action][id] = 5e0ece37-bc8a-4bb9-a95d-1572dcfb4a96 
data[Action][action_type_id] = 69c34b29-c247-11e1-b880-f46d04737d8a 
data[Image][0][id] = 9d8c1ade-2b1b-48be-a4be-f9d3176601fc 
data[Image][0][url] = file%3A%2F%2F%2Fmnt%2Fsdcard%2FDCIM%2FCamera%220120702_140539.jpg 
data[Image][0][action_id] = 5e0ece37-bc8a-4bb9-a95d-1572dcfb4a96 
data[Image][1][id] = 7cc3f6e4-7143-41ef-b98d-a766b8b1fffe 
data[Image][1][url] = file%3A%2F%2F%2Fmnt%2Fsdcard%2FDCIM%2FCamera%220130702_140539.jpg 
data[Image][1][action_id] = 5e0ece37-bc8a-4bb9-a95d-1572dcfb4a96 

現在只有動作被保存,當我叫白水($這個 - >數據)。我一直無法找到兩個相關模型同時保存的示例,但只有一個模型和連接表中的記錄(actions_images)。 ¿有沒有辦法用saveAll做到這一點? ¿或者我需要單獨保存模型?

回答

0

它可能只是陣列的格式不同而已。

烹調手冊的這一章應該有所幫助:Saving Related Model Data (HABTM)

+0

感謝的回答,但這些例子的關係只有一側插入,與聯結表中的記錄一起與已插入的記錄鏈接其他相關表格。我試圖做的是在同一時間插入HABTM關係的兩端(當然還包括與它們相關的連接表記錄),就像有很多示例一樣:http://book.cakephp.org/2.0 /en/models/saving-your-data.html#saving-related-model-data-hasone-hasmany-belongsto(關於那些他們節省主人和細節記錄一次) – eleonzx

+0

嗯,畢竟它的工作,但您必須使用聯接模型而不是HABTM,並從實際聯接模型(本例中爲「ActionsImage」)中調用saveAll,並且它僅適用於一次只保存一個關係。至少它在單個事務中將所有三個相關行保存到數據庫中。 – eleonzx

相關問題