La réservation

Exercice 6 sur 8 du chapitre 1 · 150 XP · 4 objectifs vérifiés par des tests

Notions abordées : POSTRedirectionMessages flash

Annoncer la table, c'est bien. La réserver, c'est mieux. Gorm a dessiné le formulaire (déjà dans le template) : il envoie en POST un nom et un nombre de personnes. À vous d'écrire le traitement.

Votre mission

Dans ReservationController::index() :

  1. Acceptez aussi la méthode POST sur la route app_reservation.

  2. À la soumission, vérifiez les données :

    • le nom est obligatoire → sinon l'erreur « Indiquez votre nom. » ;
    • de 1 à 12 aventuriers → sinon « Le nombre d'aventuriers doit être entre 1 et 12. ».

    En cas d'erreur, réaffichez le formulaire (valeurs saisies conservées) avec le code 422.

  3. Si tout est bon, ajoutez le message flash success « Table réservée pour Gimli (3 aventuriers) ! » (avec le nom et le nombre saisis), puis redirigez vers la page de réservation.

Le template attend les variables personnes, nom et erreur (ou null).

Pourquoi rediriger ?

C'est le motif POST → redirection → GET : sans lui, un aventurier qui actualise la page renverrait le formulaire… et réserverait deux fois. Le message flash, stocké en session, survit à la redirection puis disparaît.