La carte sort de la base

Exercice 2 sur 6 du chapitre 2 · 150 XP · 5 objectifs vérifiés par des tests

Notions abordées : RepositoryInjection de dépendancesCommande console

L'entité Plat existe, la table aussi. Bruna a même écrit une commande pour remplir sa carte : app:charger-carte. À chaque chargement de l'aperçu, la console lance pour vous :

bin/console doctrine:schema:update --force
bin/console app:charger-carte

Allez voir l'onglet Console : la carte est en base (dbal:run-sql "SELECT nom FROM plat"). Pourtant, le site affiche toujours l'ancienne liste, écrite en dur dans le service Cuisine.

Votre mission

  1. Faites lire la base à la Cuisine : injectez-lui le PlatRepository et réécrivez ses trois méthodes avec lui. La constante PLATS doit disparaître.
  2. Adaptez la carte (menu/index.html.twig) : plats est désormais une liste d'objets Plat, et le slug se lit dans plat.slug.

Les contrôleurs n'ont pas à changer : ils passent déjà par la Cuisine. C'est tout l'intérêt d'un service.

Pour aller plus loin

Ajoutez un plat en SQL depuis la console, puis rechargez la carte :

dbal:run-sql "INSERT INTO plat (slug, nom, description, prix, specialite) VALUES ('grog', 'Grog du capitaine', 'Chaud et traître.', 3.2, 0)"