Doctrine_Null
ha solo due metodi, e quello che sembra riferirsi rappresenta l'__toString
metodo. Quindi, al fine di attivare il metodo magico è necessario lanciare come una stringa:
$record = $table->getTable()->find($id);
$record->parent_id = (string) new Doctrine_Null;
$record->save();
Ma onestamente non c'è ragione, come Doctrine_Null
solo astrae una stringa vuota ''
. Posso solo supporre che funzioni solo in questo scenario perché parent_id non sta applicando un attributo NULL
.
Impostare un valore di 'NULL' appare per funzionare ma in realtà è una stringa e non NULL.
'NULL' !== null
Dare un colpo, se si inserisce 'NULL' in una riga, e un'altra riga è un "NULL naturale", e si tira entrambe le righe fuori dal tavolo e fare un var_dump(serialize())
su ciascuno, si vuole vedere uno è un null naturale e l'altro è in realtà una stringa.
Se si vuole mantenere la coerenza e far rispettare i valori nulli naturali, utilizzare questo invece:
$record = $table->getTable()->find($id);
$record->parent_id = new Doctrine_Expression('NULL');
$record->save();
fonte
2016-03-15 18:02:25
La vostra definizione della tabella specificare 0 come valore predefinito per 'parent_id'? – BenV
No, valore predefinito = null NULL – ajile