我在stack和其他资源上研究了很多东西。我发现了一些有趣的想法,但不能应用它们,因为我是一个学生,还不知道在哪里把东西直接放在正确的位置。
这段代码就在base。html。twig
<ul class="nav navbar-nav">
<li class="active">
<a href="{{ path('book_index') }}">Accueil<span class="sr-only">(current)</span></a>
</li>
<li><a href="{{ path('book_ourBooks') }}">Nos livres</a></li>
<li><a href="{{ path('book_aboutUs') }}">Être édité</a></li>
</ul>
,我想,不使用Jquery,能够显示活动时,我点击一个链接,并进入该页面。
我找到了这样的代码:
class="{% if app.request.attributes.get('_route') == '_list' %}active{% endif %}"
(和其他看起来几乎相似的东西)但我真的不知道如何和在哪里把它与我自己的链接等等。如果有任何帮助,我将非常感激,谢谢:)
ps:我正在使用symfony 2.8
您需要像这样在li's
上插入代码:
<ul class="nav navbar-nav">
<li class="{% if app.request.attributes.get('_route') == '_RouteName' %}active{% endif %}">
<a href="{{ path('book_index') }}">Accueil<span class="sr-only">(current)</span></a>
</li>
<li class="{% if app.request.attributes.get('_route') == '_RouteName' %}active{% endif %}">
<a href="{{ path('book_ourBooks') }}">Nos livres</a>
</li>
<li class="{% if app.request.attributes.get('_route') == '_RouteName' %}active{% endif %}">
<a href="{{ path('book_aboutUs') }}">Être édité</a>
</li>
</ul>
将_RouteName
替换为正确的_route
我知道这个问题已经得到了回答,但我发现了一种不同情况下的整洁方法,可能会帮助像我这样有子菜单的人:
您可以在
中搜索字符串中的子字符串。{# returns true #}
{{ 'ca' in 'car' }}
我对我的路线和导航做了什么使链接活跃
<li>
<a href="{{ url('admin_agency_index') }}"
class="{% if 'admin_agency_' in app.request.attributes.get('_route') %}active{% endif %}">
<i class="lnr lnr-apartment"></i>
<span>Agencies</span>
</a>
</li>
我的代理路由命名如下:
- admin_agency_new
- admin_agency_edit
- admin_agency_delete
在这种情况下,如果您到达添加代理的子菜单,您的html中仍然会有活动类。