Symfony2 – Twig – Как отправить параметры родительскому шаблону?

Я работаю над проектом PHP, используя Symfony2 с шаблоном Twig, и я не могу найти решение этой проблемы.

У меня есть админ-пакет, и все шаблоны простираются от базы admin, у которой есть мастер-шаблон с меню.

Мне нужно установить текущую вкладку меню в базовом шаблоне страницы на выбранную, когда пользователь находится на этой странице.

Есть ли способ передать параметр базовому шаблону через extends ?

Вот простой пример:

base.html.twig :

{# base.html.twig #} ... <ul> <li{% if menu_selected|default('one') == 'one' %} class="selected"{% endif %}>One</li> <li{% if menu_selected == 'two' %} class="selected"{% endif %}>Two</li> <li{% if menu_selected == 'three' %} class="selected"{% endif %}>Three</li> </ul> ... 

page2.html.twig :

 {# page2.html.twig #} {% extends 'YourBundle::base.html.twig' %} {% set menu_selected = 'two' %} 

Выход из рендеринга page2.html.twig:

 <ul> <li>One</li> <li class="selected">Two</li> <li>Three</li> </ul> 

Лучший способ, который я только что обнаружил, – это базовый подход, проверяя маршрут для имени маршрута быстрого вызова:

 <li class="{% if app.request.attributes.get('_route') == 'homepage' %}active{% endif %}">Home</li> 

Или другой способ – назвать все имена ярлыков маршрута в соответствии с группой, к которой она принадлежит. Например, все маршруты из вашего контроллера продуктов начинаются с «product _….», а затем в шаблоне вы можете сделать это:

 <li class="{% if app.request.attributes.get('_route') starts with 'product' %}active{% endif %}">