2009-03-28 54 views
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']); 
    } 
} 

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

答えて

1

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

+0

私は$ this-> Customer-> Address-> idというアドレスIDを割り当てようとしましたが、これはうまくいきませんでした。 –

+0

データ配列内にある必要があります –