Я довольно новичок в Doctrine, но, насколько я понимаю, метод assignIdentifier()
должен указывать Doctrine обновить соответствующую строку в базе данных вместо вставки новой.
У меня естьобъект, который я создаю через рабочий процесс, поэтому у идентификатора есть id
из null
, пока я не вызову $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();