Symfony – Les relations ManyToMany
Symfony – Les relations ManyToMany
Cours 18 — Les relations ManyToMany
Introduction
Une relation ManyToMany permet de relier plusieurs objets entre eux.
Exemple :
1
2
3
Médecin
↕
Spécialité
Un médecin peut avoir plusieurs spécialités.
Une spécialité peut concerner plusieurs médecins.
Créer la relation
Commande :
1
php bin/console make:entity
Puis :
1
New property name:
Exemple :
1
specialites
Type :
1
relation
Puis :
1
ManyToMany
Exemple
1
2
#[ORM\ManyToMany(targetEntity: Specialite::class)]
private Collection $specialites;
Ajouter un objet
1
$medecin->addSpecialite($specialite);
Supprimer un objet
1
$medecin->removeSpecialite($specialite);
Lire la relation
1
$specialites = $medecin->getSpecialites();
Résultat :
1
Collection de spécialités.
Parcourir les résultats
1
2
3
foreach ($specialites as $specialite) {
echo $specialite->getLibelle();
}
Comprendre le schéma
1
2
3
4
5
6
7
8
9
10
11
Médecin 1
↕
Cardiologie
Médecin 1
↕
Médecine générale
Médecin 2
↕
Cardiologie
Conclusion
Une relation ManyToMany permet :
- plusieurs objets vers plusieurs objets ;
- l’ajout avec
add...(); - la suppression avec
remove...(); - la lecture avec
get...().
Doctrine crée automatiquement la table de liaison nécessaire.
This post is licensed under CC BY 4.0 by the author.