Post

Symfony – Rechercher un enregistrement

Symfony – Rechercher un enregistrement

Cours 12 — Rechercher un enregistrement

Introduction

La méthode find() permet de rechercher un enregistrement à partir de son identifiant.

Elle est fournie par le repository de l’entité.


Principe général

1
$patient = $patientRepository->find(12);

Résultat :

1
Recherche le patient dont l'identifiant vaut 12.

Utiliser find() dans un contrôleur

1
2
3
4
5
6
7
8
9
10
11
12
#[Route('/patient/{id}', name: 'patient_show')]
public function show(
    int $id,
    PatientRepository $patientRepository
): Response
{
    $patient = $patientRepository->find($id);

    return $this->render('patient/show.html.twig', [
        'patient' => $patient
    ]);
}

Comprendre le code

1
$patientRepository->find($id);

Signifie :

1
Chercher l'enregistrement dont l'identifiant vaut $id.

Résultat trouvé

Si l’identifiant existe :

1
$patient = $patientRepository->find(12);

alors :

1
$patient

contient un objet Patient.


Résultat non trouvé

Si l’identifiant n’existe pas :

1
$patient = $patientRepository->find(999);

alors :

1
$patient === null

Vérifier le résultat

1
2
3
4
5
$patient = $patientRepository->find($id);

if (!$patient) {
    throw $this->createNotFoundException();
}

Affichage dans Twig

Contrôleur :

1
2
3
return $this->render('patient/show.html.twig', [
    'patient' => $patient
]);

Vue Twig :

1

Conclusion

Pour rechercher un enregistrement :

1
$patient = $patientRepository->find($id);

À retenir :

  • find() recherche par identifiant ;
  • la méthode retourne un objet ;
  • si aucun enregistrement n’est trouvé, elle retourne null ;
  • le résultat peut être transmis à Twig.
This post is licensed under CC BY 4.0 by the author.