Post

Symfony – Ajouter un enregistrement

Symfony – Ajouter un enregistrement

Cours 14 — Ajouter un enregistrement

Introduction

Pour enregistrer un objet dans la base de données, Doctrine utilise l’EntityManager.

Deux méthodes sont essentielles :

1
2
persist()
flush()

Principe général

1
2
$entityManager->persist($patient);
$entityManager->flush();

Résultat :

1
Le patient est enregistré dans la base de données.

Créer un objet

1
2
3
4
$patient = new Patient();

$patient->setNom('Durand');
$patient->setPrenom('Paul');

À ce stade, l’objet existe uniquement en mémoire.


Préparer l’enregistrement

1
$entityManager->persist($patient);

Signifie :

1
Doctrine prépare l'enregistrement de l'objet.

Enregistrer dans la base

1
$entityManager->flush();

Signifie :

1
Doctrine exécute les requêtes SQL nécessaires.

Exemple complet

1
2
3
4
5
6
7
$patient = new Patient();

$patient->setNom('Durand');
$patient->setPrenom('Paul');

$entityManager->persist($patient);
$entityManager->flush();

Utiliser dans un contrôleur

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#[Route('/patient/ajouter', name: 'patient_add')]
public function add(
    EntityManagerInterface $entityManager
): Response
{
    $patient = new Patient();

    $patient->setNom('Durand');
    $patient->setPrenom('Paul');

    $entityManager->persist($patient);
    $entityManager->flush();

    return new Response('Patient ajouté');
}

Comprendre le processus

1
2
3
4
5
6
7
Objet Patient
↓
persist()
↓
flush()
↓
Base de données

Conclusion

Pour ajouter un enregistrement :

1
2
$entityManager->persist($objet);
$entityManager->flush();

À retenir :

  • persist() prépare l’enregistrement ;
  • flush() exécute l’enregistrement ;
  • les deux méthodes sont généralement utilisées ensemble.
This post is licensed under CC BY 4.0 by the author.