Bonjour,

Je suis face à un problème depuis pas mal de temps et je n'arrive pas à le résoudre. J'utilise le bundle JMSSerializer pour sérializer mes entités pour mes web services, jusque là tout va bien, seulement je dois sérializer un objet A qui a lui une relation avec un objet B. Dans cet objet B je dois ajouter deux nouveaux champs dont les données sont obtenues via un appel à un repository => donc pas question de faire une propriété virtuelle car il faudrait injecter des services dans l'entité ce qui est moche. De plus je ne dois pas l'ajouter dans toutes les sérialization de l'objet B mais uniquement quand celui-ci est inclus dans l'objet A.

J'ai donc pensé aux listeners, j'ai fait un listener qui écoute en post serialization mon objet A et je voulais rajouter les champs dans l'objet B inclut dans l'objet A. Je me suis dit que ça serait assez commun mais je n'arrive pas à comprendre le fonctionnement du Visitor qui est donné via le ObjectEvent dans la fonction postSerialize.

On peut assez facilement faire un $event->getObject() (ici on récupère l'objet A) ->getVisitor()->addData('someKey','someValue');

Tout comme dans l'exemple suivant.


Mais mon problème c'est que je voudrais rajouter un champ dans l'objet B contenu dans l'objet A, je n'ai trouvé aucun exemple ni même d'information dans la documentation est-ce que quelqu'un saurait m'aider s'il vous plait ?

Merci d'avance.