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()
{ ...