Bonjour,

J'ai un formulaire dont je surcharge la méthode save() pour effectuer un traitement des données : ou bien un objet similaire existe déjà dans la table (comparaison sur quelques champs) et alors on met à jour l'entrée existante, ou bien cette recherche ne retourne aucun objet similaire et on l'ajoute à la base.

Je pourrais donc me contenter d'un (en pseudo-code) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if($exist = $this->searchObject($object))
  return $this->updateExistingObject($exist); // renvoie sur un Doctrine_Query
else
  return parent::save($conn);
Mais je n'aime pas cette étape qui zappe parent::save()... Du coup, je me demandais si en éditant les propriétés de l'objet lui même, on pouvait changer la requète d'ajout en requête d'update. J'ai essayé de simplement faire correspondre l'id de l'objet à celui en base, bien heureusement Symfony me signale un doublon. J'ai aussi naïvement essayé de réassigner l'objet de la base à $this... vous vous doutez du résultat.

Bref je voulais savoir si vous connaissiez une manière propre de le faire (peut-être en dehors de save() du coup) ou si mon update séparé du départ reste la meilleure solution même si elle ne passe plus par parent::save().