Faire une select depuis une table ManyToMany

Ce sujet est résolu
152061
,

Bonjour,
Je viens à vous car j'ai beau réflechir je n'arrive pas à trouver comment en venir à bout.

Voilà j'ai une table Pays et une table Langue

Une langue peut être associée à plusieurs pays de même qu'un pays peut être associé à plusieurs langues.

Il y'a donc une relation ManyToMany entre ces deux tables et une troisième table Pays_Langue en résulte

Sauf que voilà la table Pays_Langue, n'as pas de fichier Entity et donc pas de Repository

Comment je fais pour récupérer les langues associé à un pays dans la table Pays_Langue dans ce cas ?

Je souhaite depuis un formulaire (select) une fois avoir sélectionné un pays, séléctionner toutes les langues qui sont associé à ce pays pour les afficher dans une liste.

1 Réponse

87112
,

Il n'y a pas d'entité à créer pour cela, c'est doctrine qui gère la relation et la création de la table.
Pour y accéder, par exemple :

$pays = $em->getRepository(Pays::class)->findBy([codePays => 1]); // Par exemple, à adapater...
$pays->getLangue(); // Va te retourner une collection d'entité Langue du pays avec le code 1, tout simplement

Dans un formulaire, tu vas devoir passer par un FormEvent, va voir la doc : https://symfony.com/doc/current/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms