2011-12-09 15 views
31

¿Cómo puedo comprobar si la página actual es la siguiente ruta:Comprobar si {{ruta()}} es la corriente {{ruta()}} en Symfony2

{{ path('someNamePath') }} 

que desea establecer una clase CSS a el elemento <a> o posible eliminarlo por completo, por ejemplo

{% if isCurrentPath('someNamePath') %} 
    <a href="{{ path('someNamePath') }}" class="YouAreHere">My Link</a> 
{% else %} 
    <a href="{{ path('someNamePath') }}">My Link</a> 
{% endif %} 

Respuesta

68

app.request.get('_route') es probablemente lo que busca:

{% 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 %} 

En caso de que quiera utilizar uri lugar, puede utilizar app.request.uri.

+0

si uso un {% render 'AppBundle: Sidebar: render'%} para representar la barra lateral y luego app.request.get ('_ route') devuelve el valor '_internal' siempre. ¿Cómo puedo obtener una _ruta de la página actual? – Mikhail

+0

No se puede y es por diseño (por ahora) para las subpeticiones. –

Cuestiones relacionadas