CakePHP & DIEVOLUTION Blog

Stolpersteinchen bei Model Associations

 

Ein kleiner Tipp, damit es euch nicht auch so geht: Bei allen Edit-Formularen, die Model Associations haben, müssen ALLE Ids der zu ändernden Models angegeben werden.

Beispiel:
User hat ein Profil (Models: User hasOne Profile)
Ist nun nur die User ID angegeben (im Controller gesetzt oder via form->input im Formular selbst als Hidden field) updatet er zwar den User, gibt allerdings trotz hasOne Deklaration den Befehl, ein neues Profil anzulegen, ohne das andere zu löschen bzw. das alte upzudaten.

Daher immer: Wenn man User + Profil updaten will, sowohl User wie auch Profil ID angeben - das spart Zeit und Nerven.


Veröffentlicht am Dienstag, den 29. April 2008 um 14:09 Uhr veröffentlicht

Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

2 Reaktionen zu “Stolpersteinchen bei Model Associations”

 

  1. Dirk Olbertz Am 29. April 2008 um 17:37 Uhr

    Aber unbedingt darauf achten, dass man die Angaben validiert. Mit Firebug ist es ein leichtes, die IDs zu verändern, oder wegzulassen.

    Ohne Validierung/ACL kann es Dir so leicht passieren, dass Leute nicht ihre, sondern Daten anderer User ändern - oder auch übernehmen!

  2. dievo Am 29. April 2008 um 17:50 Uhr

    Das stimmt natürlich. Ich setze meistens daher die IDs, sofern möglich, im Controller, da sie dort vor “Übergriffen” auf die hidden fields geschützt sind.

Einen Kommentar schreiben