Post

Symfony – Les relations entre entités

Symfony – Les relations entre entités

Cours 17 — Les relations entre entités

Introduction

Une relation permet de relier deux entités.

Exemple :

1
2
3
Patient
↓
Séjour

Un patient peut posséder plusieurs séjours.


Créer une relation

Commande :

1
php bin/console make:entity

Puis :

1
New property name:

Exemple :

1
patient

Type :

1
relation

Exemple ManyToOne

Un séjour appartient à un seul patient.

1
2
#[ORM\ManyToOne]
private ?Patient $patient = null;

Exemple OneToMany

Un patient possède plusieurs séjours.

1
2
3
4
5
#[ORM\OneToMany(
    targetEntity: Sejour::class,
    mappedBy: 'patient'
)]
private Collection $sejours;

Utiliser la relation

1
$sejour->setPatient($patient);

Lire la relation

1
$patient = $sejour->getPatient();

Accéder à plusieurs objets

1
$sejours = $patient->getSejours();

Résultat :

1
Collection de séjours du patient.

Comprendre le schéma

1
2
3
4
5
6
7
8
9
10
11
Patient
    ↓
  Séjour 1

Patient
    ↓
  Séjour 2

Patient
    ↓
  Séjour 3

Conclusion

Les relations permettent de relier plusieurs entités.

À retenir :

  • ManyToOne : plusieurs objets vers un seul ;
  • OneToMany : un objet vers plusieurs ;
  • Doctrine génère automatiquement le code nécessaire ;
  • les relations facilitent la navigation entre les objets.
This post is licensed under CC BY 4.0 by the author.