Ich verstehe, dass die Verwendung von automatisch erzwingt, ein neues Anfrageobjekt gesendet werden, aber ich bin neugierig, wenn es eine Möglichkeit gibt, die ursprüngliche Anfrage als Argument übergeben?Symfony2: in Twig, übergeben Anfrage mit Render-Funktion
{% render('some_action', {'originalRequest': app.request}) %}
Dies scheint nicht, etwas für den Controller zu tun:
public function actionAction($originalRequest = null)
{
// $originalRequest ends up just being null
}
Im wegen der Art und Weise seiner Annahme, daß die Route Setup:
some_action:
pattern: /stuff/
defaults: { _controller:SomeApp:Controller:action }
Ich könnte mir vorstellen, Daten So etwas kann offensichtlich nicht Teil der URL sein, also eine Art, Daten an eine renderbare URL zu übergeben, überhaupt etwas?
EDIT (Lösung)
Die Lösung war ganz einfach auf lange Sicht, wie Petre Pătraşc unter Beweis gestellt hat, dass in Zweig, alles was ich brauchte die Steuerung direkt zu tun war berufen, und mit diesem Ansatz Ich kann Objekte (wie ein Request-Objekt) und Arrays anstelle von Textwerten in einer URL übergeben.
Um die gleiche Idee in einem Controller zu erfüllen, ermöglicht die Verwendung der forward()
-Methode vom Router ähnliche Effekte, ohne dass der Benutzer auf eine andere Seite umgeleitet werden muss.
ich endlich über meine Antwort kam gerade Wie du das geschrieben hast haha, das war das Ticket! Nicht den Router verwenden, nur den Controller direkt aufrufen – RedactedProfile
Ich bin neugierig, sprichst du über die Verwendung von forward() oder anders? Es wäre nett, die ursprüngliche Frage mit Ihrer Lösung zu aktualisieren, da es sich um einen Edge-Case handeln könnte und jemandem helfen könnte! –
Twig wirft nur eine Fehleranforderung, wenn Sie dies versuchen – skerit