Ich wollte heute bei einer CakePHP Anwendung bei einer Tabelle ein paar Felder hinzufuegen. Via MySQL Control Center geht das auch leicht von der Hand, ohne extra Befehle eintippen zu muessen. Die Felder sind auch schnell CakePHP via View beigebracht und im Formular validiert. Problem ist nur, CakePHP speichert die eingegebenen Daten fuer das Feld nicht in der Datenbank ab. Die Dokumentation finde ich persoenlich eher spaerlich, wenn man quer einsteigt und nicht alles Step By Step macht.

Nachdem ich den Debug Level auf 3 gestellt habe und mir mal den gesamten Controller Dump angesehen habe, ist mir die Variable $_schema aufgefallen in der alle Tabellenfelder des Models inkl. Typ etc abgelegt sind. Alles da, nur meine hinzugefuegten Felder fehlen. Da schrillen bei mir gleich alle ‘Cache’ Alarm Glocken, aber wie gesagt, manche Sachen sind echt seltsam bei CakePHP dokumentiert. In jedem Fall loest sich das Problem, wenn man in das Verzeichnis /app/tmp/cache/models/ geht. Dort sieht man fuer alle Tabellen Dateien. Wenn man nun die Datei fuer die Tabelle loescht (vorher rauskopieren, falls ihr Angst habt), zwingt ihr CakePHP die Datei neu zu erstellen. Und schwuppdiwupp, die Sache funktioniert.

Hat mich heute wirklich 3 Stunden gekostet diesen ‘Fehler’ zu finden. So langsam habe ich auch das Gefuehl, dass das was man durch das Framework an Zeit spart, wieder fuer das Beseitigen seltsamer Nebeneffekte drauf geht.