Sommaire

Le Query BuilderQuery Builder

C’est la deuxième méthode pour personnaliser la récupération de données. Le QueryBuilder permet d’exécuter uniquement des méthodes de classe pour générer la requête. On reste dans la logique objet de PHP, on n’a plus besoin d’écrire une requête en dur.

Le Query Builder est une méthode du Repository, on peut y accéder directement.

Syntaxe :

$this->createQueryBuilder(’alias pour l’entité’)-> 
méthodes du Query Builder

Vous trouverez toute la syntaxe du Query Builder sur la page : https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/query-builder.html#the-querybuilder

Les méthodes de récupération des résultats sont les mêmes que pour le DQL.

Prenons un exemple.

Nous souhaitons afficher une promotion pour le dernier produit insérée dans la base (pour le faire connaître).

Nous allons créer une méthode getLastProduit() dans le fichier Repository/ProduitRepository.php. Cette fois, nous utilisons le Query Builder pour lancer la requête.

Nous nous servirons de la méthode setMaxResults(1), qui renvoie le premier élément retourné par la requête, et nous utiliserons getOneOrNullResult() pour récupérer le résultat.

La méthode getLastProduit() s’écrit donc :

 public function getLastProduit() 
    {  ...