Combien d'aventuriers ?

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

Notions abordées : Query string#[MapQueryParameter]Validation

Samedi soir, la compagnie de l'Anneau a débarqué sans prévenir : neuf aventuriers, trois tables, zéro place. Gorm veut que l'on puisse réserver. Première étape : une page qui annonce la table selon le nombre de convives indiqué dans l'adresse, par exemple /reservation?personnes=4.

Le template reservation/index.html.twig est prêt : il attend une variable personnes.

Votre mission

  1. Déclarez la route /reservation, nommée app_reservation, sur ReservationController::index().
  2. Récupérez le nombre de personnes depuis la query string (?personnes=…). Sans paramètre, la table est pour 2.
  3. Refusez les valeurs absurdes : un nombre entre 1 et 12 seulement, sinon une erreur 400 (requête invalide).
  4. Ajoutez un lien vers la réservation dans la navigation.

Testez dans l'aperçu : ?personnes=5, ?personnes=0, ?personnes=dragon.

Rappel

Plutôt que de lire $request->query et de tout valider à la main, les attributs de Symfony décrivent ce que l'action attend : le framework s'occupe de la conversion et du refus.