Outils pour utilisateurs

Outils du site


doctrine2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doctrine2 [2022/11/09 08:47] – [Récupérer des objets en fonction d'un paramètre ; findByXxx et findOneByXxx] admindoctrine2 [2023/11/06 15:41] (Version actuelle) – [Méthodes spécifiques : EntitéRepository] admin
Ligne 12: Ligne 12:
 La méthode show peut être définie dans le contrôleur et permet également de récupérer un objet à partir de son id. La méthode show peut être définie dans le contrôleur et permet également de récupérer un objet à partir de son id.
  
-<wrap em>Il faut d'abord installer le composant nécessaire à l'utilisation du composant :</wrap> 
-<code lscript> 
->composer require sensio/framework-extra-bundle 
-</code> 
 <code php> <code php>
 /* /*
Ligne 91: Ligne 87:
  * @Route("/etudiant/consulterEtudiantsDateNaissSuperieur/{dateNaiss}", name="consulterEtudiantsDateNaissSuperieur")  * @Route("/etudiant/consulterEtudiantsDateNaissSuperieur/{dateNaiss}", name="consulterEtudiantsDateNaissSuperieur")
  */  */
- public function consulterEtudiantsDateNaissSuperieur($dateNaiss){ + public function consulterEtudiantsDateNaissSuperieur(ManagerRegistry $doctrine, $dateNaiss){ 
- $etudiants = $this->getDoctrine() + 
- ->getRepository(Etudiant::class) + $repository = $doctrine->getRepository(Etudiant::class); 
- ->consulterEtudiantParDateNaissSup($dateNaiss);+ $etudiants = $repository->consulterEtudiantParDateNaissSup($dateNaiss);
   
  return $this->render('etudiant/lister.html.twig', [  return $this->render('etudiant/lister.html.twig', [
Ligne 102: Ligne 98:
 </code> </code>
 Tests : http://localhost/webstudent/public/etudiant/consulterEtudiantsDateNaissSuperieur/1980-07-30 Tests : http://localhost/webstudent/public/etudiant/consulterEtudiantsDateNaissSuperieur/1980-07-30
 +
 +
 +
 +===== DEPRECATED SINCE V5 ---Récupérer des objets en fonction d'un paramètre ; findByXxx et findOneByXxx =====
 +
 +Il s'agit de suffixer la méthode find par le nom d'une des propriétés de l'entité.
 +Par exemple, si l'on souhaite récupérer la liste des étudiants en fonction de la ville:
 +<code php>
 +/**
 + * @Route("/etudiant/listerParVille/{ville}", name="listerEtudiantsParVille")
 + */
 + public function listerParVille($ville){
 +
 + $etudiants = $this->getDoctrine()
 +        ->getRepository(Etudiant::class)
 +        ->findByVille($ville);
 +
 + return $this->render('etudiant/lister.html.twig', [
 +            'pEtudiants' => $etudiants,]);
 +
 + }
 +</code>
 +
 +Cette méthode peut aussi être utilisée avec des propriétés complexes.
 +Par exemple,si l'on souhaite récupérer la liste des étudiants par maison (Maison étant une autre entité contenant ses propres propriétés).
 +<code php>
 +/**
 + * @Route("/etudiant/listerParMaison/{idMaison}", name="listerEtudiantsParMaison")
 + */
 + public function listerParMaison($idMaison){
 +
 + $maison = $this->getDoctrine()
 +        ->getRepository(Maison::class)
 +        ->findOneByCode($idMaison);
 +
 + $etudiants = $this->getDoctrine()
 +        ->getRepository(Etudiant::class)
 +        ->findByMaison($maison);
 +
 + return $this->render('etudiant/lister.html.twig', [
 +            'pEtudiants' => $etudiants,]);
 +
 + }
 +
 +</code>
 +Vous pouvez voir aussi dans cette méthode l'utilisation de la méthode findOneByMaison. Cette méthode est utilisée lorsque la requête ne renvoie qu'un et un seul enregistrement.
  
doctrine2.1667983638.txt.gz · Dernière modification : 2022/11/09 08:47 de admin