如何在没有重复代码的页面Symfony 5中获取当前页面?

问题描述

我想获取当前页面并给出一个活动类,而在symfony 5中不要重复代码。 这是代码示例:

    <li class="{{ app.request.get('_route_')=='home' ? 'active':''}}">
       <a href="{{path('home')}}">Home</a> 
   </li>
    <li class="{{ app.request.get('_route_')=='contact' ? 'active':''}}">
        <a href="{{path('contact')}}">Contact</a> 
    </li>

</ul>

解决方法

作为@DhiaDjobbi答案的扩展

我真的想减少“重复”的代码,我也会在数组中定义菜单。

{% set active_page = app.request.get('_route') %}
{% for page in pages %}
    <li  {% if page == active_page %} class="active" {% endif %} >
        <a href="{{path(page)}}">{{ page }}</a> 
    </li>
{% endfor %}
,

U可以在Template中创建一个易于理解的树枝变量。

{% set page = app.request.get('_route') %}

然后使用If条件进行测试。

<li  {% if page == 'home' %} class="active" {% endif %} >
   <a href="{{path('home')}}">Home</a> 
</li>
<li  {% if page == 'contact' %} class="active" {% endif %} >
   <a href="{{path('contact')}}">Contact</a> 
</li>