Twig Symfony,细枝,如果根据当前路线突出显示选项卡的条件

Twig Symfony,细枝,如果根据当前路线突出显示选项卡的条件,twig,symfony,Twig,Symfony,我试图得到一个列表,以突出显示,如果它是在其当前页面(路线)。然而,我也有子页面在页面内,我也希望列表被突出显示 我有我的菜单如果声明: <ul class="menu"> {% if app.request.get('_route') == 'home' %} <li class="current"><a href="{{ path('home')}}">Home</a>&

我试图得到一个列表,以突出显示,如果它是在其当前页面(路线)。然而,我也有子页面在页面内,我也希望列表被突出显示

我有我的菜单如果声明:

 <ul class="menu">
                {% if app.request.get('_route') == 'home' %}
                    <li class="current"><a href="{{ path('home')}}">Home</a></li>
                {% else %}
                    <li><a href="{{ path('home')}}">Home</a></li>
                {% endif %}

                {% if app.request.get('_route') == 'reports' %}
                    <li class="current"><a href="{{ path('reports') }}">Reports</a></li>
                {% else %}
                    <li><a href="{{ path('reports') }}">Reports</a></li>
                {% endif %}

// etc etc 

因此,无论何时任何人进入作为/reports/子页面的路线,菜单中的“reports”li仍将突出显示?

我不确定twig是否具有“starts with”功能,但您可以使用
中的
检查是否包含

{% if 'reports' in app.request.get('_route')  %}

我不确定twig是否有“开始于”的功能,但您可以使用
中的
检查是否包含

{% if 'reports' in app.request.get('_route')  %}

只是想用最新信息更新这个问题。 根据当前的(2.x)Twig文档,这是可能的。 更具体地说,缔约国:

您还可以检查字符串是否以另一个字符串开头或结尾:

因此,理想的表达式是完全可能的:

{% if app.request.get('_route') starts with 'reports' %}

并按预期工作。

仅用当前信息更新此问题。 根据当前的(2.x)Twig文档,这是可能的。 更具体地说,缔约国:

您还可以检查字符串是否以另一个字符串开头或结尾:

因此,理想的表达式是完全可能的:

{% if app.request.get('_route') starts with 'reports' %}

并按预期工作。

此线程上有一些不错的选择,但另一个选择是将路由传递到数组中。如果您有下拉菜单项,这将非常有用

数组中的项目将是您定义的路由

然后在菜单栏中将其添加到菜单标签类中

{% if app.request.attributes.get('_route') in routes.activities %} Do Something {% endif %}

在这个线程上有一些不错的选择,但另一个选择是将路由传递到数组中。如果您有下拉菜单项,这将非常有用

数组中的项目将是您定义的路由

然后在菜单栏中将其添加到菜单标签类中

{% if app.request.attributes.get('_route') in routes.activities %} Do Something {% endif %}