Les aventuriers fauchés se plaignent : impossible de savoir ce qu'on peut s'offrir avec six pièces d'or. Et Gorm aimerait que le « plat du jour » soit la spécialité la moins chère, pour attirer le chaland.
findBy() ne suffit plus : il faut écrire ses propres requêtes. Le service Cuisine, le contrôleur et le template sont prêts. Ils appellent trois méthodes du PlatRepository… qui renvoient pour l'instant des listes vides.
Votre mission
Dans PlatRepository, écrivez avec le QueryBuilder :
findParPrixCroissant(): tous les plats, du moins cher au plus cher ;findSpecialites(): seulement les spécialités, de la moins chère à la plus chère ;findPourUnBudget(float $budget): les plats dont le prix ne dépasse pas le budget, du moins cher au plus cher.
Essayez /menu, puis /menu?budget=6 dans l'aperçu.
Rappel
Le QueryBuilder produit du DQL : on y parle d'entités et de propriétés (p.prix), pas de tables ni de colonnes. Et une valeur venant de l'extérieur passe toujours par un paramètre (:budget), jamais par une concaténation.