我有一些表qazxsw poi(qazxsw poi,qazxsw poi,qazxsw poi),我想改变一些行,设置parent_id = null。
我试图:
store_section
但这不起作用。如何在Doctrine中的表中设置NULL,在上面的示例中,parent_id变为= 0(不是= NULL)?
谢谢你的回复!
我会尝试以下之一:
1:
id
2:
parent_id
我没有测试过这些,但我记得之前有过类似的问题,只是不记得我是如何解决它的。希望这可以帮助!
您可以使用方法集('u.name','NULL')例如:
label
$record = $table->getTable()->find( $id );
$record->parent_id = null;
$record->save();
只有两种方法,而似乎与之相关的方法是$record = $table->getTable()->find( $id );
$record->parent_id = new Doctrine_Null();
$record->save();
方法。因此,为了激活魔术方法,您需要将其转换为字符串:
$record = $table->getTable()->find( $id );
$record->parent_id = "NULL";
$record->save();
但老实说,没有理由,因为Doctrine_Query::create()->update('User u')->set('u.name', 'NULL')->where('u.id = ?',$id);
只是抽象一个空字符串Doctrine_Null
。我只能假设它只适用于这种情况,因为parent_id没有强制执行__toString
属性。
设置值“NULL”似乎工作但实际上是一个字符串而不是NULL。
$record = $table->getTable()->find( $id );
$record->parent_id = (string) new Doctrine_Null;
$record->save();
试一试,如果你将'NULL'插入一行,而另一行是“自然的空”,你将两行拉出表并在每一行上做一个Doctrine_Null
,你会看到一个是自然的null其他实际上是一个字符串。
如果要保持一致性并强制使用自然空值,请改用:
''
在这种情况下,当字段是关系时。我完成了这项任务:
NULL
上面的Parent是关系名称。
'NULL' !== null
在Doctrine2中使用查询构建器,您还可以直接更新db中的值。
var_dump(serialize())