2009-05-29 8 views

Antwort

35

In einigen Fällen endet die Aktionsausführung mit der Anforderung einer neuen Aktionsausführung. Zum Beispiel leitet eine Aktion, die eine Formularübermittlung in einer POST Anfrage behandelt, normalerweise nach dem Aktualisieren der Datenbank zu einer anderen Aktion weiter. Ein anderes Beispiel ist ein Aktions-Alias: Die Index-Aktion ist oft eine Möglichkeit, eine Liste anzuzeigen und sie tatsächlich an eine Listenaktion weiterzuleiten.

Die Action-Klasse bietet zwei Methoden eine andere Aktion auszuführen:

Wenn die Aktion den Aufruf zu einer anderen Aktion leitet:

$this->forward('otherModule', 'index'); 

Wenn die Aktion führt zu einer Web-Umleitung:

$this->redirect('otherModule/index'); 
$this->redirect('http://www.google.com/'); 

Die Wahl zwischen Redirect oder Forward ist manchmal schwierig. Beachten Sie bei der Auswahl der besten Lösung, dass eine Weiterleitung für die Anwendung intern und für den Benutzer transparent ist. Soweit es den Benutzer betrifft, ist die angezeigte URL die gleiche wie die angeforderte. Im Gegensatz dazu ist eine Weiterleitung eine Nachricht an den Browser des Benutzers, die eine neue Anfrage von ihm und eine Änderung der endgültigen resultierenden URL beinhaltet.

Wenn die Aktion von einem übermittelten Formular mit method="post" aufgerufen wird, sollten Sie immer eine Umleitung durchführen. Der Hauptvorteil besteht darin, dass das Formular nicht erneut gesendet wird, wenn der Benutzer die resultierende Seite aktualisiert. Darüber hinaus funktioniert der Zurück-Button wie erwartet, indem das Formular angezeigt wird und keine Warnung, in der der Benutzer gefragt wird, ob er eine POST-Anforderung erneut senden möchte.

+0

Danke, vor allem über den letzten Punkt. –

+0

Dies ist der Originaltext von [Symfony Docu] (http://www.symfony-project.org/book/1_0/06-Inside-the-Controller-Layer#chapter_06_sub_skipping_to_another_action), du hättest wenigstens deine Quelle nennen sollen! @ e-satis – domi27

+0

warum klingest du mich an @ domi27? –

Verwandte Themen