2012-05-20 2 views
5

Я новичок в Symfony2, и мне нужно, чтобы быть в состоянии проверить текущий маршрут в веточке, так что я могу отобразить подменю в шаблоне, который обработан:Как получить текущий URL-адрес или маршрут в TWIG?

{% render "CPAdminBundle:Messages:sidebarMenu" %} 
{% render "CPAdminBundle:Readings:sidebarMenu" %} 

В шаблонах боковой панели, я попытался с помощью следующее, но оно вызывает ошибку:

path(app.request.attributes.get('_route')) 

Каков правильный способ делать то, что я пытаюсь выполнить?

+0

Вы должны проверить [KnpMenuBundle] (https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/index.md), он решает много ваших проблем, связанных с меню. – Maerlyn

ответ

22

Проверка, которую вы хотите сделать, не относится к виду. Представления должны только заботиться о показе, а не делать какую-либо логику.

Выполняйте проверку в контроллере и храните его в переменной, передайте эту переменную в свои представления и проверите значение этой переменной там.
Если вы хотите сделать это при каждом действии, дайте kernel.controller event.

Если вы хотите сделать это во взгляде, просто сравните app.request.attributes.get('_route') с желаемым маршрутом. Я не понимаю, почему вы положили path().

{% if app.request.attributes.get('_route') == 'my_route' %} 
{% endif %} 
+0

путь был тем, что я получил от google, но даже если я попытаюсь напечатать ** {{app.request.attributes.get ('_ route')}} **, вывод говорит ** _ internal **, и я могу ' t похоже, чтобы получить имя маршрута в представлении, которое мне нужно, так как у меня есть 10 шаблонов ветви, которые будут отображаться в моей боковой панели и отображать подменю в соответствии с текущим маршрутом. – MikeGA

+0

. Каков результат '$ this-> getRequest() - > attributes-> get ('_ route') 'в контроллере? –

+0

Это дает мне название текущего маршрута, как я ожидаю, НО Я не думаю, что я должен сделать это в каждом контроллере, у меня будет около 20, разве вы не думаете, что его нужно проверить в моем шаблоне боковой панели? – MikeGA

Смежные вопросы