MVC et traitement des requêtes · Question 8 sur 12
Pourquoi une createAction() redirige-t-elle généralement vers une autre action avec $this->redirect() dans Extbase ?
1 réponse est correcte. Facile
Afficher la solution
Solution
- C Pour qu'un rechargement de la page ne renvoie pas le formulaire et ne crée pas d'enregistrement en double
Explication
Ce pattern s'appelle Post/Redirect/Get : redirect() envoie une réponse HTTP 303 « See Other », le navigateur abandonne le corps POST et demande la page cible en GET. Si le visiteur appuie ensuite sur F5 ou sur le bouton Précédent, seule la requête GET est répétée – pas l'envoi du formulaire. Important : redirect() retourne une réponse, il faut donc écrire return $this->redirect('list');. Les flash messages fonctionnent aussi sans redirection, mais par défaut ils sont conservés dans la session afin de survivre à une redirection.