我很新的教义,但据我所知,assignIdentifier()
方法应该告诉Doctrine更新相关行到数据库,而不是插入一个新的。更新对象,而不是使用指示插入使用assignIdentifier()
我有我通过工作流构建一个对象,所以标识具有的null
的id
直到我打电话$object->save();
这将插入它,这确实工作。
但是,如果我打电话$object->assignIdentifier($newobj->id);
,然后$object->save();
它什么都不做 - 它不会插入新行并且不更新旧行。
如果某个条件成立,我想从数据库中拉出不同的记录并更新该行而不是插入新的记录。
我在这里理解错误吗?
一些代码来说明:
if($this->object->payments > 0) {
$older_payment = Doctrine_Query::create()
->from('OldPaid p')
->where('p.dealid = ?', $this->object->transid)
->fetchOne()
;
$this->object->assignIdentifier($older_payment->id);
}
$this->object->save();