2009-07-30 65 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