2011-12-25 10 views
33

Element widoku na mojej stronie zależy od parametru trasy i będzie renderować coś, jeśli jest obecny parametr trasy. Czy możliwy jest bezpośredni dostęp do parametru trasy w szablonie twig?Czy możliwy jest bezpośredni dostęp do parametru trasy w szablonie gałązki?

Na przykład:

TestBundle_testroute: 
    pattern: /{name} 
    defaults: { _controller: TestBundle:Default:test, name: defaultname } 

Chciałbym być w stanie uzyskać dostęp bezpośrednio Parametr „Nazwa” trasy w Gałązka. Coś jak:

{{ routing.name }} 

Odpowiedz

90

Można osiągnąć to tak:

{{ app.request.get('name') }} 
+1

dziękuję bardzo! Czy możesz wskazać mi stronę w dokumentacji, która pokazuje wszystkie zmienne, które są dostępne w ten sposób? – DavidW

+0

@DavidW: Globalne zmienne szablonów: http://symfony.com/doc/current/book/templating.html i moduły pobierające obiektu żądania: http://api.symfony.com/2.0/Symfony/Component/ HttpFoundation/Request.html – erenon

+0

Nie działa dla mnie. Dodałem '{{app.request.get ('name')}}' do mojego szablonu twig, ale zwraca tylko biały znak (trasy zdefiniowane przez adnotacje). Cleared cache i wszystko ... czy coś przeoczyłem? – AaL

0

Jestem również ten sam problem. Aby rozwiązać ten problem, zrzuciłem obiekt żądania i przejrzałem atrybuty. W atrybutach widać wszystkie dostępne właściwości powiązane z żądaniem, do których można uzyskać dostęp za pomocą gałązki. Na przykład:

app.request.attributes('_route'); //gives you route name 
app.request.attributes('slug'); //gives you path variable with in the controller with the name 'slug' 
Powiązane problemy