2011-12-25 3 views
33

Элемент просмотра на моей странице зависит от параметра маршрута и будет отображать что-то, если присутствует параметр маршрута. Можно ли напрямую получить доступ к параметру Route в шаблоне ветви?Возможно ли получить доступ к параметру Route в шаблоне ветви?

Например:

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

Я хотел бы напрямую получить доступ к «имя» параметра маршрута в Twig. Что-то вроде:

{{ routing.name }} 

ответ

90

Вы можете достичь его, как это:

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

большое спасибо! Не могли бы вы указать мне на страницу в документации, которая показывает всю переменную, доступную таким образом? – DavidW

+0

@DavidW: глобальные переменные шаблона: http://symfony.com/doc/current/book/templating.html и получатели объекта запроса: http://api.symfony.com/2.0/Symfony/Component/ HttpFoundation/Request.html – erenon

+0

Не работает для меня. Я добавил '{{app.request.get ('name')}}' в свой шаблон ветви, но он возвращает только пробелы (маршруты, определенные аннотациями). Очищенный кеш и все ... я что-то пропустил? – AaL

0

Я также с той же проблемой. Чтобы устранить эту проблему, кулак сбрасывал объект запроса и просматривал атрибуты. В атрибутах вы можете увидеть все доступные свойства, связанные с запросом, к которому можно получить доступ по ветке. Например

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