我有一个带有简单固定菜单的Twig模板。我使用下面的代码来确定与当前页面对应的链接。这远非漂亮。 有没有另一种方法可以在Twig中自行确定这一点?
我不想将控制器中的数组发送到定义链接的模板(这样我可以检查循环中的当前页面并避免 - 在我看来 - 双重代码)
我在Twig的文档中是否有一些东西?
<ul>
<li {% if app.request.get('_route') == 'all' %}class="current"{% endif %}>
<a href="{{ path('all') }}">All</a>
</li>
<li {% if app.request.get('_route') == 'second' %}class="current"{% endif %}>
<a href="{{ path('second') }}">Second</a>
</li>
<li {% if app.request.get('_route') == 'third' %}class="current"{% endif %}>
<a href="{{ path('third') }}">Third</a>
</li>
<li {% if app.request.get('_route') == 'fourth' %}class="current"{% endif %}>
<a href="{{ path('fourth') }}">Fourth</a>
</li>
</ul>
答案 0 :(得分:1)
我实际上认为这可能是最好的方法 - 至少在访问$_SESSION
方面。唯一的选择可能是app.request.get('_route')
,但感觉不那么动态 - 也就是说,如果路线的网址发生变化,您需要更新模板。
您当然可以将当前路线存储在您传递给模板的变量中,这意味着您不必继续访问app.request.getUri
;相反,你每次都可以检查该变量。