添加活动类以链接到 sf2 和树枝
以下简单代码:
<li><a href="{{ path('_list') }}">List</a></li>
有没有一种简单的方法来添加一个如果当前页面与路由匹配?class="active"
_list
使用最新的 PR-Release 的 symfony2 和 twig 作为模板引擎
以下简单代码:
<li><a href="{{ path('_list') }}">List</a></li>
有没有一种简单的方法来添加一个如果当前页面与路由匹配?class="active"
_list
使用最新的 PR-Release 的 symfony2 和 twig 作为模板引擎
Twig 允许条件,Request 对象在整个应用程序中都可用。如果要包括模板,要获取要使用的路由,请执行以下操作:
app.request.attributes.get('_route')
如果您使用的是渲染函数,则需要使用:
app.request.attributes.get('_internal')
有了这个,你应该能够使用:
class="{% if app.request.attributes.get('_route') == '_list' %}active{% endif %}"
或更短:
class="{{ app.request.get('_route') == '_list' ? 'active' }}"
有时您不想对路线进行精确匹配。对于这些情况,您可以使用 twig 的“start with”条件逻辑。
例如,假设您正在处理书籍。您有以下路线:预订,book_show,book_new,book_edit。您希望为其中任何一种情况突出显示导航项“簿”。此代码将实现此目的。
<a class="{% if app.request.attributes.get('_route') starts with 'book' %}active{% endif %}">Books</a>
<a class="{% if app.request.attributes.get('_route') starts with 'author' %}active{% endif %}">Authors</a>
此示例至少适用于 Symfony 2.3.x