Outils pour utilisateurs

Outils du site


symfony_4:doctrine_2:recuperation_de_donnees

Ceci est une ancienne révision du document !


Récupération de données

Exemple : Une table “user” avec les colonnes “id”, “name”, “mail”.

Exemple


Sans ORM

Sans ORM, pour récupérer les données, dans tous les cas, on utilise le langage SQL :

 SELECT * FROM "user" WHERE 'user'.'id' LIKE 1 

Avec ORM

Avec un ORM, étant données le status d'objet et la liaison avec le framework, on dispose de plusieurs moyens de récupération :

  • Si on souhaite récupérer l'utilisateur courant (actuellement connecté) :
 $this->getUser() 
  • Sinon on utilise l'ORM, la requete précédente donne ainsi :
 $manager->getRepository(User::class)->findOneBy(array('id' => 1)); 

Méthodes

Les deux méthodes principales de récupération sont :

$manager->getRepository(class::class)->findBy(array(), array())

et

$manager->getRepository(class::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

Exemple

 $users = $manager->getRepository(User::class)->findBy(
array('active'=> true), 
array('creationDate' => 'ASC)
);
symfony_4/doctrine_2/recuperation_de_donnees.1539849841.txt.gz · Dernière modification: 2019/12/08 08:43 (modification externe)