Doctrine_Null
sólo tiene dos métodos, y la que parece estar relacionado es el __toString
método. Así que con el fin de activar el método mágico, es necesario especificar como una cadena:
$record = $table->getTable()->find($id);
$record->parent_id = (string) new Doctrine_Null;
$record->save();
Pero honestamente no hay ninguna razón, como se acaba de Doctrine_Null
abstrae una cadena vacía ''
. Solo puedo suponer que solo funciona en este escenario porque parent_id no está aplicando un atributo NULL
.
Establecer un valor de 'NULL' aparece a trabajar, pero en realidad es una cadena y no es NULL.
'NULL' !== null
darle un tiro, si inserta 'NULL' en una fila, y otra fila es un "NULO natural", y que tire de ambas filas de la tabla y hacer un var_dump(serialize())
en cada uno, se quiere ver uno es un nulo natural y otro es en realidad una cadena.
Si desea mantener la coherencia y hacer cumplir los nulos naturales, utilizar esto en su lugar:
$record = $table->getTable()->find($id);
$record->parent_id = new Doctrine_Expression('NULL');
$record->save();
sí especifica que su definición de la tabla 0 como el valor por defecto para 'parent_id'? – BenV
No, valor de forma predeterminada = nulo NULL – ajile