[TYPO3-german] Extbase NULL in DB speichern

g4-lisz at tonarchiv.ch g4-lisz at tonarchiv.ch
Thu Apr 9 21:16:09 CEST 2015


Hallo allerseits,

wie kann ich es einrichten, dass leere Formularfelder in der Datenbank
als NULL gespeichert werden?

Hintergrund ist, dass das Formular viele Felder mit Zahlenwerten hat.
Wenn man diese nicht ausfüllt, soll aber nicht 0 sondern NULL abgelegt
werden, damit man später unterscheiden kann, ob das entspr. Feld
ausgefüllt wurde oder nicht.

Ich habe die entspr. Felder in der DB auf default NULL gesetzt, ebenso
in der Deklaration in der Modellklasse,

also z.B

    /**
     * mw
     *
     * @var float
     */
    protected $mw = null;

    /**
     * mw2
     *
     * @var float
     */
    protected $mw2 = null;
usw.

Solange ich kein Feld im Formular ausfülle, bleiben auch tatsächlich
alle Felder der entspr. Tabelle NULL.
Sobald ich aber ein einzelnes Feld des Objekts ändere, werden alle
anderen leeren beim Speichern mit 0 überschrieben.

An den POST-Daten liegt es nicht, die kommen bei leeren Formularfeldern
auch wirklich als NULL im Setter an:
    /**
     * Sets the mw
     *
     * @param float $mw
     * @return void
     */
    public function setMw($mw) {
        if($mw == NULL)
            $this->mw = 999;
        else
            $this->mw = $mw;
    }

Wenn ich nun das entspr. Feld leer lasse, wird tatsächlich 999 in der DB
abgelegt.
Explizit NULL ablegen scheint aber leider nicht zu klappen.

Oder kann man das evtl. in der TCA entsprechend konfigurieren?

Grüße,
Till


More information about the TYPO3-german mailing list