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
- Faites lire la base à la
Cuisine: injectez-lui lePlatRepositoryet réécrivez ses trois méthodes avec lui. La constantePLATSdoit disparaître. - Adaptez la carte (
menu/index.html.twig) :platsest désormais une liste d'objetsPlat, et le slug se lit dansplat.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)"