Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if {{ path() }} is current {{ path() }} in Symfony2

Tags:

php

twig

symfony

How do I check if the current page is this path:

{{ path('someNamePath') }}

I want to set a css class to the <a> element or possible remove it altogether, e.g.

{% if  isCurrentPath('someNamePath') %}
    <a href="{{ path('someNamePath') }}" class="YouAreHere">My Link</a>
{% else %}
    <a href="{{ path('someNamePath') }}">My Link</a>
{% endif %}
like image 215
ed209 Avatar asked Dec 09 '11 21:12

ed209


2 Answers

app.request.get('_route') is probably what you are looking for:

{% if app.request.get('_route') == 'current_route' %}
    <a href="{{ path('current_route') }}" class="YouAreHere">My Link</a>
{% else %}
    <a href="{{ path('some_other_route') }}">My Link</a>
{% endif %}

In case you want to use uri instead, you can use app.request.uri.

like image 144
Ondrej Slinták Avatar answered Nov 05 '22 06:11

Ondrej Slinták


The correct way is to use the "controller_name" variable. This is added in every controller generated by the symfony CLI. Of yourse you can, and probably should, add it there yourself if its not present.

Then you can do a check like this: {% if controller_name == "DashboardController" %}active{% endif %}

like image 41
jDoe Avatar answered Sep 21 '22 06:09

jDoe