2009-03-28 30 views
0

Mit CakePHP: Ich versuche, Kundeninformationen und die Adresse, die der Kunde verknüpft ist, zu aktualisieren. so dass Customer.address_id = Address.id undModell wird nicht aktualisiert

Kunden Modell

$belongsTo = 'Address'; 

Vom 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']); 
    } 
} 

Kunden richtig Updates, aber Adresse fügt immer eine neue Zeile. Wie bekomme ich diese Adresse zu aktualisieren?

Antwort

1

vor allem, nehmen Sie Linien 11 und 12. Diese dienen keinen Zweck. Stellen Sie sicher, dass Ihre Ansicht Formularelemente für Customer.id und Address.id enthält. Wenn Sie nur die Adresse aktualisieren, brauchen Sie auch die Zeile 13 nicht. Die kurze Antwort ist, dass CakePHP Zeile anstelle von Update einfügen wird, wenn der Primärschlüssel fehlt. In Ihrem Fall bedeutet dies [Adresse] [id].

+0

Ich habe versucht, die Adresse ID als $ this-> Customer-> Address-> ID zuzuweisen, anscheinend hat das nicht funktioniert. –

+0

muss es im Datenarray sein –

Verwandte Themen