MVC und Request-Verarbeitung · Frage 5 von 12
Was ist nötig, um nach dem Speichern eines Formulars in Extbase eine Erfolgsmeldung anzuzeigen?
2 Antworten sind richtig. Einfach
Lösung anzeigen
Lösung
- A Im Fluid-Template den ViewHelper <f:flashMessages /> ausgeben
- B Im Controller die Meldung mit $this->addFlashMessage() hinzufügen
Erklärung
Flash-Messages sind einmalige Hinweise, die auch eine Weiterleitung überstehen. Im Controller legt man sie z. B. mit $this->addFlashMessage('Konferenz gespeichert.', 'Erfolg', ContextualFeedbackSeverity::OK) an und leitet danach meist mit redirect('list') weiter. Standardmäßig werden sie in der Session zwischengespeichert, deshalb erscheinen sie nach dem Redirect auf der Zielseite. Ausgegeben werden sie im Template mit <f:flashMessages /> – fehlt dieser ViewHelper, sieht der Besucher die Meldung nicht. Ein echo in der Action funktioniert nicht, weil Extbase die Ausgabe ausschließlich über das zurückgegebene Response-Objekt erzeugt.