我正在爲模型保存多個記錄,並且如果company_id已存在,我想更新現有記錄。cakephp嘗試更新記錄ID已存在的MySQL記錄
我使用的型號驗證碼:
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]:完整性約束衝突:關鍵「PRIMARY 1062重複輸入 '60' '
我明白爲什麼我得到這個錯誤,但我似乎無法強制更新而不是插入。
看起來像一個邏輯錯誤...你試圖在保存之前更改記錄ID?如果你發現另一條記錄,你不能只使用它的ID ...嘗試搜索此記錄之前運行save()方法 – 2012-02-10 05:39:58