Faute de frappe sur la carte : la « Tourte elfique aux champigons ». Et le prix du ragoût doit augmenter (le nain grincheux réclame une augmentation). Bruna veut pouvoir modifier un plat sans passer par la console.
Bonne nouvelle : PlatType sert aussi bien à créer qu'à modifier. Il suffit de le lier à un plat existant.
Votre mission
- Ajoutez à
CuisineControllerune actionmodifierPlat()sur/cuisine/plat/{slug}/modifier(routeapp_modifier_plat) :- le plat est retrouvé à partir du slug de l'URL (404 s'il n'existe pas) ;
- le formulaire
PlatTypes'affiche, pré-rempli ; - s'il est soumis et valide : enregistrez, ajoutez le message flash « Le plat a été modifié. », puis redirigez vers la fiche.
- Écrivez le template
cuisine/modifier.html.twig, avec un bouton « Enregistrer ». - Sur la fiche d'un plat, ajoutez un lien « Modifier ».
Le slug ne change pas quand le nom change : les liens déjà partagés vers la fiche doivent rester valides.
Rappel
Un objet chargé depuis la base est suivi par Doctrine : au flush(), ses modifications sont écrites. persist() ne sert qu'aux nouveaux objets.