Doctrine_Null
sadece iki yöntemleri ve ilişkili gibi görünmektedir birine sahiptir __toString
olduğunu yöntem. Yani bir dize olarak döküm gereken sihirli yöntemini etkinleştirmek için:
$record = $table->getTable()->find($id);
$record->parent_id = (string) new Doctrine_Null;
$record->save();
Ama Doctrine_Null
sadece boş bir dize ''
soyutlar olarak dürüstçe, hiçbir neden yoktur. Yalnızca bu senaryoda çalıştığını varsayalım, çünkü parent_id bir NULL
özniteliğini zorlamıyor.
'NULL' değerini ayarlamak,'un çalıştığı görünmektedir, ancak aslında bir dizedir ve NULL değil. Eğer bir satıra 'NULL' eklerseniz
'NULL' !== null
, bir atış ver ve başka bir satır "doğal NULL" olduğunu ve masanın dışına hem satırları çekin ve her bir
var_dump(serialize())
yapmak, olur Birincisi doğal bir boş ve diğeri aslında bir dizedir. Eğer tutarlılığı korumak ve doğal boş değerlere uygulamak istiyorsanız
yerine bunu kullanın:
$record = $table->getTable()->find($id);
$record->parent_id = new Doctrine_Expression('NULL');
$record->save();
tablo tanımı 'parent_id' için varsayılan değer olarak 0 belirtiyor? – BenV
Hayır, varsayılan değer = null NULL – ajile