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

我有以下代码:

<?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-&gt; User-&gt; create();似乎做得不多。

有帮助吗?

解决方案

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

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

其他提示

尝试在新的 save()之前重置 id ,可能在两个模型上:

$this->User->id = null;

Cake决定是否根据set id 更新或插入条目, save()自动设置 id 。不确定为什么 create()不会为你解决这个问题。

另外,如果要保存HABTM数据,则需要使用 saveAll()而不是 save()。另请参阅此问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top