2011-12-25 14 views
33

Un elemento de vista en mi página depende de un parámetro de ruta y representará algo si hay un parámetro de ruta presente. ¿Es posible acceder al parámetro de ruta en la plantilla twig directamente?¿Es posible acceder directamente al parámetro de ruta en la plantilla twig?

Por ejemplo:

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

Me gustaría ser capaz de acceder directamente a “nombre” parámetro de ruta en la ramita. Algo así como:

{{ routing.name }} 

Respuesta

90

Se puede lograr de esta manera:

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

muchas gracias! ¿Podría indicarme la página en la documentación que muestra todas las diferentes variables que están disponibles de esta manera? – DavidW

+0

@DavidW: variables globales de plantilla: http://symfony.com/doc/current/book/templating.html, y los buscadores del objeto de solicitud: http://api.symfony.com/2.0/Symfony/Component/ HttpFoundation/Request.html – erenon

+0

No funciona para mí. Agregué '{{app.request.get ('name')}}' a mi plantilla twig pero solo devuelve un espacio en blanco (rutas definidas por anotaciones). Limpiar el caché y todo ... ¿extrañé algo? – AaL

0

También estoy teniendo el mismo problema. Para solucionar este problema, descargué el objeto de solicitud y revisé los atributos. En los atributos, puede ver todas las propiedades disponibles asociadas a la solicitud a las que se puede acceder mediante ramitas. Por ejemplo

app.request.attributes('_route'); //gives you route name 
app.request.attributes('slug'); //gives you path variable with in the controller with the name 'slug' 
Cuestiones relacionadas