MVC und Request-Verarbeitung · Frage 8 von 12

Warum leitet man nach einer createAction() in Extbase üblicherweise mit $this->redirect() auf eine andere Action weiter?

1 Antwort ist richtig. Einfach

Lösung anzeigen

Lösung

  • C Damit ein Neuladen der Seite das Formular nicht erneut absendet und keinen doppelten Datensatz erzeugt

Erklärung

Das Muster heißt Post/Redirect/Get: redirect() sendet eine HTTP-Antwort 303 „See Other“, der Browser verwirft den POST-Inhalt und ruft die Zielseite per GET auf. Drückt der Besucher danach F5 oder die Zurück-Taste, wird nur der GET-Aufruf wiederholt – nicht das Absenden des Formulars. Wichtig: redirect() gibt eine Response zurück, man muss also return $this->redirect('list'); schreiben. Flash-Messages funktionieren auch ohne Redirect, sie werden aber standardmäßig in der Session gehalten, damit sie eine Weiterleitung überstehen.

Zertifikate & Prüfungen

Welche Prüfung kommt als Nächstes?

19 Prüfungen kannst du schon üben, über 21 stimmst du gerade ab. Sieh dir alle Zertifikate mit offiziellen Infos an, gib deine Stimme ab oder schlag deine Prüfung vor.

Zur Zertifikatsübersicht