Doctrine_Null
hat nur zwei Methoden, und derjenige, der die __toString
zu beziehen scheint Methode. Also, um die magische Methode, die Sie als String werfen müssen zu aktivieren:
$record = $table->getTable()->find($id);
$record->parent_id = (string) new Doctrine_Null;
$record->save();
Aber ehrlich gesagt gibt es keinen Grund, wie Doctrine_Null
nur ''
eine leere Zeichenfolge abstrahiert. Ich kann nur annehmen, dass es nur in diesem Szenario funktioniert, da parent_id kein NULL
Attribut erzwingt.
Setzen Sie einen Wert von 'NULL' erscheint zu arbeiten, ist aber eigentlich eine Zeichenfolge und nicht NULL.
'NULL' !== null
ihm einen Schuss geben, wenn Sie ‚NULL‘ in eine Zeile einzufügen, und eine andere Zeile ist ein „natürliches NULL“, und ziehen Sie die beiden Zeilen aus der Tabelle und macht ein var_dump(serialize())
auf jedem, werden Sie eins ist ein natürliches Null und anderes ist eigentlich ein String.
Wenn Sie Konsistenz beibehalten wollen und natürlichen nulls zu erzwingen, diese stattdessen verwenden:
$record = $table->getTable()->find($id);
$record->parent_id = new Doctrine_Expression('NULL');
$record->save();
Gibt es in Ihrer Tabellendefinition 0 als Standardwert für 'parent_id' angeben? – BenV
Nein, Wert standardmäßig = null NULL – ajile