モデルの複数のレコードを保存していますが、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()メソッドを実行する前にこのレコードを検索してください –