====== 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') );