Bonjour à tous,
Je veux effectuer quelques actions (mise à jour de données secondaires) quand un objet est modifié. Naïvement, j'ai cherché à surcharger la méthode save() mais à mon grand désarroi, mes efforts sont vains.
Si j'appelle processParentCategories avant parent::save(), mon objet ($this) ne semble pas connaître les nouvelles informations à sauvegarder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public function save(Doctrine_Connection $conn = null) { parent::save($conn); // $this->refresh(); $this->processParentCategories(); }
Si je l'appelle après... non plus, qu'il y ait un refresh() ou pas.
Du coup, processParentCategories() se comporte comme si l'objet n'avait pas été modifié.
Je connais la méthode doUpdateObject() dans sfFormObject mais je ne veux pas passer par là : mon objet peut être modifié en dehors d'un formulaire, je dois donc intervenir dans save() pour être sûr de ne rien rater. N'importe quel framework orienté objet permet de type de surcharges basiques, je ne comprends pas pourquoi Symfony me bloque ici - et ce n'est pas la "documentation" de l'API qui me renseigne beaucoup...
Snif.
Partager