2011-12-09 34 views
31

Làm thế nào để kiểm tra xem trang hiện tại con đường này:Kiểm tra xem {{path()}} là hiện tại {{path()}} trong Symfony2

{{ path('someNamePath') }} 

Tôi muốn thiết lập một lớp css để các yếu tố <a> hoặc có thể loại bỏ nó hoàn toàn, ví dụ

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

Trả lời

68

app.request.get('_route') có lẽ là những gì bạn đang tìm kiếm:

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

Trong trường hợp bạn muốn sử dụng uri thay vào đó, bạn có thể sử dụng app.request.uri.

+0

nếu tôi sử dụng {% render 'AppBundle: Thanh bên: hiển thị'%} để hiển thị thanh bên, sau đó app.request.get ('_ route') trả về giá trị '_internal' luôn. Làm thế nào tôi có thể nhận được một _route của trang hiện tại? – Mikhail

+0

Bạn không thể và theo thiết kế (hiện tại) cho các yêu cầu phụ. –

Các vấn đề liên quan