我正在構建一個可用作社交網絡的網站。保存HABTM數據,同時在CakePHP相關表中創建新記錄
我有一個型材表和檔案模型。
檔案 HABTM 興趣
檔案 HABTM 愛好 等等
裏有愛好幾個預定義的記錄和興趣愛好表格,用戶可以選擇在表格上顯示。但如果他們沒有預先定義,他們也可以選擇添加自己的興趣愛好和興趣。
當用戶選擇添加尚不存在的興趣或興趣時,會出現問題。將預定義記錄保存到連接表中不是問題。但我似乎不能在利益在同一和愛好表保存調用創建新條目。
下面是數據數組我試圖挽救的片段(我也嘗試過其他的組合,但是這一次似乎是最合乎邏輯的):
array(
'Interests' => array(
'Interests' => array(
(int) 0 => '1',
(int) 1 => '2',
(int) 2 => '5'
),
'name' => 'Internet' //this is the user-created entry
),
'Hobbies' => array(
'Hobbies' => array(
(int) 0 => '1',
(int) 1 => '2',
(int) 2 => '5',
(int) 3 => '7',
(int) 4 => '8'
),
'name' => 'Reading' //this is also a user-created entry
)
)
保存功能:$this->Profile->saveAll($this->request->data, array('deep' => true))
問題是在保存期間新條目(在本例中爲「閱讀」和「Internet」)被忽略。沒有錯誤,其他所有內容都保存得很好。
如果我打電話$this->Profile->Hobby->saveAll($this->request->data)
那麼它確實有效,但只適用於Hobby模式。當然,新的興趣將被忽略,因爲保存呼叫不會通過它的模型。
數據數組未正確格式化,還是僅在一次保存調用中無法實現?
你試過saveAssociated? –
是的,不起作用。 – Botch
在CakePHP中保存HABTM數據會很痛苦:http://patisserie.keensoftware.com/en/pages/how-to-save-habtm-data-in-cakephp – Chris