Sommaire

Le langage DQL

DoctrineQueryLanguage est un langage qui s’apparente au SQL, à la différence près qu’il s’applique sur les entités (les objets PHP) et non sur la base de données.

Vous trouverez toute la syntaxe du DQL sur la page : https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html

L’utilisation du DQL va se faire dans une méthode du fichier Repository à partir de la méthode createQuery() de l’EntityManager.

Syntaxe :

$query = $em->createQuery(’La requête DQL ’); 
$resultats = $query->getResult(); 

La méthode getResult() récupère l’ensemble des résultats de la requête.

Vous avez d’autres méthodes de récupération possibles.

  • getSingleResult() : retourne un seul objet. Si la requête retourne plusieurs objets, une erreur apparaîtra. Si la requête ne retourne aucun objet, une erreur apparaîtra également.

  • getOneOrNullResult() : retourne un seul objet. Si la requête retourne plusieurs objets, une erreur apparaîtra. Si la requête ne retourne aucun objet, une valeur null sera retournée.

  • GetArrayResult() : retourne les résultats sous forme de tableaux imbriqués au lieu de renvoyer un ArrayCollection.

  • GetScalarResult() : retourne des valeurs scalaires pouvant contenir des données en double.

  • GetOneScalarResult() : retourne une seule ...