{% for node in menu.nodes %}
<li><a href="{{ page_url(node,node.defaultParams) }}">{{ node.title }}</a></li>
{% endfor %}
Есть ли простой способ добавить класс = "активный" для текущего узла? Спасибо.Symfony2 добавить класс, активный в меню
{% for node in menu.nodes %}
<li><a href="{{ page_url(node,node.defaultParams) }}">{{ node.title }}</a></li>
{% endfor %}
Есть ли простой способ добавить класс = "активный" для текущего узла? Спасибо.Symfony2 добавить класс, активный в меню
Я стараюсь решить проблему с помощью макроса. Он работает так (непроверенный код набранного здесь непосредственно):
{% macro menuitem(route, params, text) %}
{% set _url = path(route, params) %}
<li{% if _url == app.request.requesturi %} class="current"{% endif %}>
<a href="{{ _url }}">{{ text }}</a>
</li>
{% endmacro %}
Этот метод добавит текущий класс, если маршрут вы генерируете сейчас является один пользователь просил.
Для упрощения импорта использования это: {% from _self import menuitem %}
Использование: {{ menuitem("blogpost", { "id": 1 }, "my first blogpost") }}
Также обратите внимание, что я использую кремнезем, где текущий запрос доступен через app.request
, не уверен, что об этом в рамках полного стека ,