Les relations ManyToManyManyToMany
Nous allons gérer le cas où on
peut avoir autant de relations qu’on souhaite entre la
table propriétaire et la table inverse et réciproquement.
Cette fois, une colonne de jointure, comme
précédemment, ne suffit pas. Pour ce type de relation,
il faut créer une table de jointure intermédiaire
entre les deux tables.
Rassurez-vous, Doctrine s’occupe
de tout.
Nous allons créer une nouvelle entité Distributeur
pour faire notre jointure.
Distributeur contiendra juste une propriété $nom.
php bin/console make:entity
Il faut répondre à la question
New property name : nom
type : string
length : 255
Il faut créer la migration :
php bin/console make:migration
puis migrer :
php bin/console doctrine:migrations:migrate
La relation ManyToMany entre l’entité Produit
et l’entité Distributeur se fait comme pour la
relation OneToOne, grâce aux annotations.
Dans l’entité Produit, ajoutez
cette propriété :
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Distributeur", cascade={"persist"} )
* @ORM\JoinColumn(nullable=true)
*/
private $distributeurs;
Nous avons volontairement ajouté un « s » à ...