O.R.M. Doctrine Autres requêtes via Repository
Transcription
O.R.M. Doctrine Autres requêtes via Repository
O.R.M. Doctrine Autres requêtes via Repository 160 Symfony 2 – Les requêtes et Repository Symfony y y_03 Diagramme de classes du mapping relationnel / Objet j 161 Symfony 2 – Les requêtes et Repository – find() Symfony y y_03 Utiliser find() : Méthode d'interrogation de Doctrine 2 Elle permet d'interroger directement une entité par son id Elle renvoie, si besoin les informations liées et portée par les rôles, le tout étant Ell i ib i l i f ti lié t té l ôl l t t ét t piloté par l'O.R.M. Exemple : interrogation d'un Exemple : interrogation d un villageois, et affichage de ses informations villageois et affichage de ses informations ... // Appel de Doctrine 2 et son repository $repository = $this->getDoctrine() ->getRepository('MmilesGauloisBundle:Villageois'); g p y g // Recherche du villageois par son id (40 => Asterix) $unVillageois = $repository->find(40); ... 162 Symfony 2 – Les requêtes et Repository – find() Symfony y y_03 Affichage de ses informations (et des informations liées via les rôles, par ex. consommation des potions ) : consommation des potions ) : ... echo h echo echo echo echo echo "Le villageois "L ill i : <b <br/>"; />" "<hr/>"; ".... id : ".$unVillageois->getId()."<br/>"; ".... nom : ".$unVillageois->getNom()."<br/>"; $ g g () ".... adresse : ".$unVillageois->getAdresse()."<br/>"; ".... specialite : ". $unVillageois->getLaSpecialite()->getNom()."<br/>"; echo h ".... " C Consommations ti : <b <br/>"; />" foreach($unVillageois->getLesPotionsBues() as $consommation){ echo "......... : " .$consommation->getPotion()->getNom() g () g () ." : " .$consommation->getDate()->format('d-m-Y') ." - ".$consommation->getDose()." cl <br/>"; } }... 163 Symfony 2 – Les requêtes et Repository – find() Symfony y y_03 Affichage de ses informations (et des informations liées via les rôles, par ex. consommation des potions ) : 164 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Utiliser findOneBy() : Méthode d'interrogation dynamique de Doctrine 2 Elle permet d'interroger une entité via un nom de colonne On précise le nom de la colonne dans le nom de la méthode Ell Elle renvoie, si besoin les informations liées et portée par les rôles, le tout étant i ib i l i f ti lié t té l ôl l t t ét t piloté par l'O.R.M. Exemple : interrogation du villageois de nom Exemple : interrogation du villageois de nom "Asterix" Asterix , et affichage de ses informations et affichage de ses informations findOneByNom() ... // Appel de Doctrine 2 et son repository $repository = $this->getDoctrine() ->getRepository('MmilesGauloisBundle:Villageois'); g p y g // Recherche du villageois par son nom $unVillageois = $repository->findOneByNom("Asterix"); ... 165 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Affichage de ses informations (et des informations liées via les rôles, par ex. consommation des potions ) : ... echo h echo echo echo echo echo "Le villageois "L ill i : <br/>"; <b />" "<hr/>"; ".... id : ".$unVillageois->getId()."<br/>"; ".... nom : ".$unVillageois->getNom()."<br/>"; $ g g () ".... adresse : ".$unVillageois->getAdresse()."<br/>"; ".... specialite : ".$unVillageois->getLaSpecialite() ->getNom()."<br/>"; echo h ".... " C Consommations ti : <b <br/>"; />" foreach($unVillageois->getLesPotionsBues() as $consommation){ echo "......... : ".$consommation->getPotion()->getNom() ." : ".$consommation->getDate()->format('d-m-Y') g () ( ) ." - ".$consommation->getDose()." cl <br } ... 166 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Affichage de ses informations (et des informations liées via les rôles, par ex. consommation des potions ) : 167 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Utiliser findOneBy() : Cas où plusieurs enregistrements correspondent à la requête Exemple : interrogation d'un villageois ayant comme adresse "Centre Village" findOneByAdresse() Il y a dans la base de données 3 villageois qui correspondent à cette sélection Dans ce cas Doctrine 2 retourne le premier trouvé Dans ce cas Doctrine 2 retourne le premier trouvé 168 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Utiliser findOneByAdresse() : Exemple : interrogation d'un villageois ayant comme adresse "Centre Village" ... $repository = $this->getDoctrine() ->getRepository('MmilesGauloisBundle:Villageois'); $unVillageois = $repository->findOneByAdresse("Centre Village"); if (!$unVillageois) g { // Si rien n'est rouvé $unVillageois est null echo 'Aucun villageois trouvé'; }else{ echo "Le villageois : <br/>"; echo "<hr/>"; echo ".... nom : ".$unVillageois->getNom()."<br/>"; } ... 169 Symfony 2 – Les requêtes et Repository – findOneBy() Symfony y y_03 Utiliser findOneByAdresse() : Exemple : interrogation d'un villageois ayant comme adresse "Centre Village" On ramène dans ce cas le premier trouvé 170
Documents pareils
O.R.M. Doctrine Requêtes via Repository des entités Requêtes via
foreach ($listeVillageois as $villageois) {
echo ".... nom : " . $villageois->getNom()." - lieu habitat : "
.$villageois->getLeLieu()->getNom()."
";
foreach ($villageois->getPriseCasque() as $p...