Можно ли напрямую получить доступ к параметру Route в шаблоне ветки?

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

Например:

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

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

{{ routing.name }}

person DavidW    schedule 25.12.2011    source источник


Ответы (2)


Вы можете добиться этого следующим образом:

{{ app.request.get('name') }}
person Elnur Abdurrakhimov    schedule 25.12.2011
comment
большое спасибо! Не могли бы вы указать мне страницу в документации, которая показывает все различные переменные, доступные таким образом? - person DavidW; 28.12.2011
comment
@DavidW: глобальные переменные шаблона: symfony.com/doc/current/book/templating.html и геттеры объекта запроса: api.symfony .com/2.0/Symfony/Component/HttpFoundation/ - person erenon; 19.06.2012
comment
Не работает для меня. Я добавил {{ app.request.get('name') }} в свой шаблон ветки, но он возвращает только пробел (маршруты, определенные аннотациями). Очистил кеш и все... я что-то пропустил? - person Paul Voss; 03.07.2012
comment
Ах, это работает для меня: yaml-routes-desc" title="как получить во время выполнения имя маршрута в symfony2 при использовании описания маршрутов yaml">stackoverflow.com/questions/10349188/ - person Paul Voss; 03.07.2012
comment
@AaL, вы искали имя маршрута, а этот вопрос касается доступа к параметру маршрута с именем name. ;) - person Elnur Abdurrakhimov; 01.09.2012
comment
{{ app.request.query.get('name') }} работал у меня (используя Symfony 2.7) - person Marc Perrin-Pelletier; 14.09.2015

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

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