【问题标题】:Check if {{ path() }} is current {{ path() }} in Symfony2检查 {{ path() }} 是否是 Symfony2 中的当前 {{ path() }}
【发布时间】:2012-01-17 02:44:42
【问题描述】:

如何检查当前页面是否是这个路径:

{{ path('someNamePath') }}

我想为 <a> 元素设置一个 css 类,或者可能完全删除它,例如

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

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    正确的方法是使用“controller_name”变量。这是在 symfony CLI 生成的每个控制器中添加的。如果它不存在,您可以并且可能应该自己添加它。

    然后你可以做这样的检查:{% if controller_name == "DashboardController" %}active{% endif %}

    【讨论】:

      【解决方案2】:

      app.request.get('_route') 可能就是你要找的东西:

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

      如果您想改用 uri,可以使用 app.request.uri

      【讨论】:

      • 如果我使用 {% render 'AppBundle:Sidebar:render' %} 来渲染侧边栏,那么 app.request.get('_route') 总是返回 '_internal' 值。如何获取当前页面的_route?
      • 你不能,这是子请求的设计(目前)。
      猜你喜欢
      • 2019-08-10
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2015-07-21
      相关资源
      最近更新 更多