Bruna a une idée par jour, et elle en a assez de passer par le SQL de la console. Elle veut une page pour ajouter ses plats : /cuisine/nouveau-plat. Le formulaire est prêt, et la navigation y mène déjà (lien « Cuisine »).
Votre mission
Dans CuisineController::nouveauPlat(), à la soumission du formulaire (POST) :
- Lisez les champs
nom,description,prixetspecialite. - Refusez les données invalides, avec le code 422 et un message :
- pas de nom → « Donnez un nom au plat. » ;
- un prix nul ou négatif → « Le prix doit être supérieur à zéro. » ;
- un plat déjà à la carte (même slug) → « Ce plat est déjà à la carte. ».
- Créez le
Plat, avec un slug tiré de son nom (« Soupe à l'oignon » →soupe-a-l-oignon). - Enregistrez-le, puis redirigez vers sa fiche.
Rappel
L'EntityManager est le gardien de la base. persist() lui confie un nouvel objet ; flush() écrit tout ce qui a changé, en une transaction. Le slugger de Symfony transforme un texte en identifiant d'URL, accents et apostrophes compris.