0

Cakephpの使用:顧客情報と顧客がリンクされているアドレスを更新しようとしています。Customer.address_id = Address.id、および

顧客モデル

$belongsTo = 'Address';

Customers_controllerから

function profile($id = null)
{
  if (empty($this->data['Customer']))
  { 
    $this->Customer->id = $id;
    $this->data = $this->Customer->read();
  }
  else
  {
    $this->Customer->id = $this->data['Customer']['id'];
    $this->Customer->read();
    $this->Customer->save($this->data['Customer']);
    $this->Customer->Address->save($this->data['Address']);
  }
}

顧客は正しく更新されますが、住所は常に新しい行を挿入します。このアドレスを更新するにはどうすればよいですか?

4

1 に答える 1

1

まず、11 行目と 12 行目を取り除きます。これらは何の役にも立ちません。ビューに Customer.id と Address.id のフォーム要素が含まれていることを確認してください。アドレスを更新するだけの場合は、13 行目も必要ありません。簡単な答えは、主キーが見つからない場合、Cakephp は更新ではなく行を挿入するということです。あなたの場合、これは[アドレス] [id]を意味します。

于 2009-03-28T10:21:16.597 に答える