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

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...

Plus en détail