2009-07-30 98 views
3

我一次創建多個關聯,並且在保存時存在一些問題。在CakePHP中使用HABTM進行保存

我有以下代碼:

<?php 
foreach($userData as $user) { 
    $data = array('User' => array('id' => $user['id']), 'Site' => array('id' => $user['site_id'])); 
    $this->User->save($data); 
} 
?> 

我已經嘗試了格式化以不同的方式將數據陣列雖然我總是遇到同樣的問題。當插入新條目或更新當前條目時,以前的條目都會移動。

我可以只使用以下內容,但我需要一個觸發行爲。

$this->User->SiteUser->save($data); 

編輯:另外$ this-> User-> create();似乎沒有太大的作用。

回答

8

的IRC幫助制定出了什麼事,一旦唯一鍵設置爲一切都能夠正確保存。

//In the user model 
var $hasAndBelongsToMany = array(
    'Site' => array(
    'className' => 'Site', 
    'unique' => false 
) 
); 
+1

+1對自學者徽章 – deizel 2009-07-31 14:46:05

1

前嘗試新save()重置id,可能在這兩種模式:

$this->User->id = null; 

蛋糕決定是否更新或插入基於一組id項,save()設置自動的id。不知道爲什麼create()沒有照顧到你。

此外,如果您要保存HABTM數據,則應該使用saveAll()而不是save()。另見this question