public function mergeFrom(Doctrine_Record $r) { $object = $this->getInvoker(); if (!$r->exists() || !$object->exists()) { foreach ($r->getUserFavoritesQuery()->execute() as $favorite) { $q = LsDoctrineQuery::create()->from('UserFavorite uf')->where('uf.object_model = ? AND uf.object_id AND uf.user_id = ?', array(get_class($object), $object->id, $favorite->user_id)); if (!$q->count()) { $favorite->setObject($object); $favorite->save(); } } } }