Symfony2 - Holen Sie sich die aktuelle URL oder die route im TWIG-template?
Meine route ist
admin:
path: /admin/
defaults: { _controller: CatalogWebBundle:Admin:admin }
Wie kann ich mich von route-name im PHP-template ?
- Ich glaube, der Zweig, die Sie verwenden können
app.request.attributes.get('_route')
für php-Vorlage, die Sie ableiten können entsprechende code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um die aktuelle URL
$request->getRequestUri();
oderapp.request.uri
Als für die route selbst, die beste Vorgehensweise ist, um es zu injizieren, die als parameter in den controller finden Sie in der der doc hier. Könnten Sie
$request->attributes->get('_route')
oderapp.request.attributes.get('_route')
aber es ist nicht so zuverlässig, beispielsweise funktioniert nicht mit nach vorne als Sie die Weiterleitung an eine Steuerung, nicht auf einen Pfad. Und es ist wirklich nur bedeutete für debugging-Zwecke nach Fabien (@fabpot), der Schöpfer, also ich würde nicht verlassen sich auf Sie für zukünftige upgrades Willen.Sidenote
Erinnern zu vermeiden Sie
$request->get()
können Sie jederzeit, also keine$request->get('_route')
wie ich gesehen habe in einigen Antworten auf ähnliche FragenDer Grund dafür ist, dass es in der besagten öffentlichen Eigenschaften (Attribute query & Anfrage), statt nur den einen (Attribute), so dass es viel langsamer
Nicht eine gute Sache zu tun, die direkt im Zweig, aber man kann immer noch tun. Der bessere Weg ist, übergeben Sie als argument von der Steuerung.
Get Parameter der route in Twig.
UND
Bekommt ganze bundle-Namen in Twig.
Get-route-Namen in Twig.
Um den Namen der Route ein in Symfony2 geben Sie den folgenden code-snippet
Um die URL in Symfony2,
Hinzufügen, dass in einigen Fällen
app.request.uri
nicht zurückkehren, die url der aktuellen Seite.Beispiel: in Ihrem page template, rufen Sie einen controller über:
Und in
myBlockAction
machen Sie eine andere Vorlage, sagenblock.html.twig
.Einen Anruf zu
app.request.uri
ausblock.html.twig
wird etwas angezeigt, wie:Wenn Sie wollen, um die absolute url der gerenderten Seite von innen
block.html.twig
können Sie wieder zusammenbauen, es aus php $_SERVER Variablen:Können Sie auch hinzufügen
QUERY_STRING
wenn nötig.