Bonjour, Je m'initie à Symfony2 (venant tout droit de Symfony1.4) et je demande des idées pour réaliser une chose un peu hors du commun. J'ai par exemple les entités Personne, Localite, Evenement. A ces entités je dois ajouter des numéros de téléphone, des photos, etc.
La première idée est d'avoir des Personne_photo, Personne_phone, Localite_photo, Localite_phone, Evenement_photo, Evenement_phone. Mais cette solution va me faire répéter trop de code, puisque que dans chaque contrôleur je dois écrire l'action pour récupérer les photos, les numéros de téléphone de chaque objet de l'entité en question. En plus je préfère rassembler toutes les photos dans une seule table quelle que soit l'entité à laquelle elle est rattachée, et pouvoir ainsi faire une galerie photos. Aussi j'ai pensé avoir plutôt des table entite_photo, entite_phone, avec dans chacune d'elle les champs entite_nom et entite_object_id. Le champ entite_nom va stocker le nom de l'entité (exemple: personne, evenement ou localite). Entite_object_id est une clé étrangère qui référencera l'object de l'entité auquel appartient la photo ou le numéro de téléphone. (J'ai constaté que c'est la même méthode qui est utilisée pour le système de traduction par défaut dans symfony2. Il se crée dans la base de donnée une table ext_translations qui contient un champ object_class de type VARCHAR qui enregistre les noms des entités dont les objets sont traduits, et un champ foreign_key, VARCHAR lui aussi bizarrement, qui contient les id des objets traduits.)
Mon problème est que je ne sais pas comment réussir à faire en sorte que, lors de la création ou de l'édition d'un objet de base (Personne, Localite, Evenement), je puisse ajouter dynamiquement plusieurs champs photo et téléphone) et persister en même temps dans la table de base et les tables associées (Exemple: personne, personne_photo et personne_phone). Merci de vos réponses.
Partager