Cours 13 — Rechercher plusieurs enregistrements
Introduction
Les méthodes findAll() et findBy() permettent de récupérer plusieurs enregistrements.
Elles sont fournies par le repository de l’entité.
Rechercher tous les enregistrements
1
| $patients = $patientRepository->findAll();
|
Résultat :
1
| Retourne tous les patients.
|
Utiliser findAll() dans un contrôleur
1
2
3
4
5
6
7
8
9
10
11
| #[Route('/patients', name: 'patient_liste')]
public function index(
PatientRepository $patientRepository
): Response
{
$patients = $patientRepository->findAll();
return $this->render('patient/index.html.twig', [
'patients' => $patients
]);
}
|
Afficher les résultats dans Twig
1
2
3
| {% for patient in patients %}
{{ patient.nom }}
{% endfor %}
|
Rechercher avec une condition
1
2
3
| $patients = $patientRepository->findBy([
'nom' => 'Durand'
]);
|
Résultat :
1
| Retourne tous les patients dont le nom est Durand.
|
Plusieurs critères
1
2
3
4
| $patients = $patientRepository->findBy([
'nom' => 'Durand',
'prenom' => 'Paul'
]);
|
Résultat :
1
| Retourne les patients correspondant aux deux critères.
|
Comprendre le résultat
1
| $patients = $patientRepository->findAll();
|
Retourne :
1
| Une collection d'objets Patient.
|
Contrairement à :
1
| $patient = $patientRepository->find($id);
|
qui retourne :
Conclusion
Pour rechercher plusieurs enregistrements :
À retenir :
findAll() retourne tous les enregistrements ;findBy() applique un ou plusieurs critères ;- le résultat est une collection d’objets ;
- Twig utilise généralement une boucle
for pour afficher les résultats.