Outils pour utilisateurs

Outils du site


symfony_4:doctrine_2:la_methode_findby_findoneby

Les méthodes findBy() et findOneBy()

Ce sont les deux méthodes principales de récupération :

//Définition du manager
$manager = $this->getDoctrine()->getManager();
 
$var = $manager->getRepository(User::class)->findBy(array(), array())

et

//Définition du manager
$manager = $this->getDoctrine()->getManager();
 
$var = $manager->getRepository(User::class)->findOneBy(array(), array())

Leurs arguments :

  • Le premier tableau permet de donner les restrictions (équivalent à WHERE )
    • Plusieurs condition sont possible, elles sont à séparer par des virgules.
    • Un ensemble de condition seront interprétés avec la condition AND WHERE
  • Le second permet de donner l'ordre de trie ( équivalent à ORDER BY)

Limitation :

  • Il est impossible de réaliser la condition OR WHERE en utilisant des virgules
  • Il est impossible d'utiliser autre chose que LIKE dans cette méthode

Exemples :

Récupération des utilisateurs actifs, trié par date de création

//Définition du manager
$manager = $this->getDoctrine()->getManager();
 
$users = $manager->getRepository(User::class)->findBy(
   array('active'=> true), 
   array('creationDate' => 'ASC)
);

Récupération de l'utilisateur actif ayant l'id 2, trié par nom

//Définition du manager
$manager = $this->getDoctrine()->getManager();
 
$user = $manager->getRepository(User::class)->findOneBy(
   array('active'=> true, 'id' => 2), 
   array('name' => 'DESC)
);

Récupération des l'utilisateurs actifs ayant l'id 2,3,4,5 ou 6 trié par nom

//Définition du manager
$manager = $this->getDoctrine()->getManager();
 
//Définition des choix voulu
$tabUserId = array(2,3,4,5,6);
$user = $manager->getRepository(User::class)->findBy(
   array('active'=> true, 'id' => $tabUserId), 
   array('id' => 'ASC')
);
symfony_4/doctrine_2/la_methode_findby_findoneby.txt · Dernière modification: 2019/12/08 08:41 (modification externe)