public function mergeFrom(Doctrine_Record $r) { $object = $this->getInvoker(); if (!$r->exists() || !$object->exists()) { return false; } foreach ($r->getReferencesByFields() as $ref) { if (count($ref->Excerpt)) { foreach ($ref->Excerpt as $excerpt) { $object->addReference($ref->source, $excerpt->body, $ref->getFieldsArray(), $ref->name, $ref->source_detail, $ref->publication_date); } } else { $object->addReference($ref->source, null, $ref->getFieldsArray(), $ref->name, $ref->source_detail, $ref->publication_date); } $ref->delete(); } return true; }