Wie bekomme ich die aktuelle Route in Symfony 2?
Wie bekomme ich die aktuelle route in Symfony 2?
Beispielsweise routing.yml
:
somePage:
pattern: /page/
defaults: { _controller: "AcmeBundle:Test:index" }
Wie kann ich diese somePage
Wert?
InformationsquelleAutor der Frage IlyaDoroshin | 2011-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Von etwas, das ContainerAware (wie ein controller):
InformationsquelleAutor der Antwort tuxedo25
Mit Twig :
{{ app.request.attributes.get('_route') }}
InformationsquelleAutor der Antwort Matthieu
Ich denke, das ist der einfachste Weg, dies zu tun:
InformationsquelleAutor der Antwort supernova
Symfony 2.0-2.1
Verwenden Sie diese:
Dass man nicht geben Sie
_internal
.Updates für Symfony 2.2+: Dies ist nicht die Arbeit ab Symfony 2.2+. Ich öffnete eine bug und die Antwort war "by design". Wenn Sie möchten, Holen Sie sich die Strecke in einem sub-Aktion, müssen Sie übergeben es als argument
Und controller:
InformationsquelleAutor der Antwort jsgoupil
Gibt es keine Lösung, die funktioniert für alle Einsatz-Fälle. Wenn Sie das $request->get('_route') Methode, oder seine Varianten, wird es wieder '_internal' für Fälle, in denen die Weiterleitung erfolgte.
Wenn Sie brauchen eine Lösung, die funktioniert, auch mit Spedition, Sie haben die Verwendung der neuen RequestStack service, kam im 2.4, aber dies wird brechen ESI-support:
Können Sie einen Zweig Erweiterung heraus, wenn Sie es brauchen, die in den Vorlagen.
InformationsquelleAutor der Antwort K. Norbert
_route
ist nicht der Weg zu gehen, und war nie. Es wurde immer gemeint, für debugging-Zwecke nach Fabien, der erstellt Symfony. Es ist unzuverlässig, da es nicht mit Dingen wie Weiterleitung und andere direkte Aufrufe von Controller wie die partielle rendering.Müssen Sie injizieren Ihrer route den Namen als parameter im controller, sehen Sie, der doc hier
Auch, bitte verwenden Sie niemals
$request->get('');
wenn Sie nicht brauchen, die Flexibilität, ist es doch viel langsamer als bei Verwendung von get auf der besonderen Eigenschaft, dass die Tasche, die Sie brauchen (Attribute, Abfrage oder Anfrage) so$request->attributes->get('_route');
in diesem Fall.InformationsquelleAutor der Antwort Tom Toms
Können Sie die route name aus dem request-Objekt aus der controller.
InformationsquelleAutor der Antwort Venkat Kotra
Alle, ich bin immer aus, dass ist
_internal
Bekomme ich den Namen der route ein, die aus einem controller mit
$this->getRequest()->get('_route').
Auch der code tuxedo25 schlug zurück
_internal
Dieser code wird ausgeführt, in dem, was genannt wurde ein 'Komponente' in Symfony 1.X; Nicht eine Seite, Beherrscher, sondern Teil einer Seite, die braucht eine gewisse Logik.
Den entsprechenden code in Symfony 1.X:
sfContext::getInstance()->getRouting()->getCurrentRouteName();
InformationsquelleAutor der Antwort alexismorin
Für alle, die Strom-route für Symfony 3, das ist, was ich verwenden
InformationsquelleAutor der Antwort Aderemi Dayo
Mit Symfony 3.3, ich habe diese Methode und funktioniert gut.
Habe ich 4 Routen wie
Und nur eine Zeile aktiv-Klasse für alle Routen.
InformationsquelleAutor der Antwort Muhammad Shahzad
Um die aktuelle route, basierend auf der URL (zuverlässiger im Falle von forwards):
InformationsquelleAutor der Antwort Alain Tiemblo
wenn Sie möchten, bekommen von route-name im controller als Sie haben zu injizieren, die Anfrage (anstelle von Behälter aufgrund Symfony-UPGRADE und als Aufruf get('_route').
wenn Sie möchten, bekommen von route-name in twig als Sie haben, um es zu bekommen wie
InformationsquelleAutor der Antwort Vazgen Manukyan