Ich benutze Zend Framework 1.7 mit einer MySQL 5.0 Datenbank für ein Projekt, das ich mache. Ein Teil des Systems ist ein längliches Formular, das einen Benutzer nach verschiedenen Daten (im TT/MM/JJJJ-Format) sowie einigen ganzzahligen Feldern fragt.Zend_Db ignoriert meine Standardfeldwerte!
In meiner MySQL-Tabelle haben alle diese Felder einen Standardwert von null. Wenn ich die Formulardaten mit einer Funktion in meinem Modell speichern möchte (die Zend_Db_Table erweitert), werden alle leeren Ganzzahlenfelder auf gesetzt, und alle leeren Datumsfelder werden auf 0000-00-00 gesetzt - in beiden Fällen Sie sollten null sein.
Ich glaube, das liegt daran, dass Zend_Db_Table-> insert() alle Werte zitiert, einschließlich leerer. Kann ich dieses Verhalten irgendwie ändern? Momentan muss ich Gruppen von Feldern durchlaufen und sie auf Null setzen.
Cheers,
Matt
Hallo, Ja, ich mache etwas ähnliches im Moment. Allerdings habe ich ungefähr 30 Felder, die es tun müssen. Ich lese sie durch, aber es ist nicht sehr effizient. Und wenn ich Felder ändere/hinzufüge, muss ich meinen Code ändern. Irgendwelche anderen Möglichkeiten, um es herum? – fistameeny
Benutze array_fill_keys ($ emptyFields, neues Zend_Db_Expr ('NULL')) oder array_map, um die Darstellung des leeren Feldes nach Zend_Db_Expr ('NULL') abzubilden. – vartec
Andere Option besteht darin, ein null $ Datenarray mit array_fill_keys ($ allFields, neues Zend_Db_Expr ('NULL')) zu erstellen, dann setzen Sie Felder, die Sie setzen wollen, und nicht gesetzte Felder bleiben null. – vartec