3

我一口气创建了多个关联,在保存方面存在一些问题。

我有以下代码:

<?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(); 似乎没有多大作用。

4

2 回答 2

8

IRC 帮助找出问题所在,一旦唯一键设置为false ,一切都能够正确保存。

//In the user model
var $hasAndBelongsToMany = array(
  'Site' => array(
    'className' => 'Site',
    'unique' => false
  )
);
于 2009-07-30T16:03:00.753 回答
1

尝试在两个模型上重置id之前的 new save()

$this->User->id = null;

Cake 根据 set 决定是更新还是插入条目id,并自动save()设置一个id。不知道为什么create()不为您解决这个问题。

此外,如果你想保存 HABTM 数据,你应该需要使用saveAll()而不是save(). 另请参阅此问题

于 2009-07-30T04:04:01.127 回答