我正在为一个模型保存多条记录,如果company_id已经存在,我想更新现有记录。
我在模型中使用此代码:
function beforeSave() {
$found = $this->find("first",array(
"recursive" => -1,
"conditions" => array("company_id" => $this->data['Osm']['company_id'])));
if(isset($found))
{
$this->data['Osm']['id'] = $found['Osm']['id'];
}
return true;
}
但我得到以下错误:错误:SQLSTATE[23000]:完整性约束冲突:1062键"PRIMARY"的重复条目"60"
我理解为什么我会出现这个错误,但我似乎无法强制更新而不是插入。
您必须在方法上而不是在数据中设置$id
成员变量。改为执行$this->id = $found['Osm']['id'];
。