0

サイドバーのあるレイアウトがあります。サイドバー内に、カテゴリ一覧を表示するブロックがあります。このブロック内でレンダリングするコントローラー (カテゴリーのリストをフェッチする) を呼び出しました。サイドバーは次のようになります。

サイドバーを含むメインのレイアウト ファイルは次のとおりです。

<!--  siteLayout.html.twig   -->
<div id="sidebar">
  {% block sidebarBlock1 %}
    {% render "TestBundle:Index:categoryList" %}
  {% endblock %}
</div>

TestBundle:Index:categoryListは、データベースからカテゴリのリストを取得し、以下のように返します。

<ul>
   <li><a href="/category/1">Category 1</a></li>
   <li><a href="/category/2">Category 2</a></li>
</ul>

私の他のすべてのビューは、siteLayout.html.twig を拡張します。私が欲しいのは、ユーザーがこの URL "/category/1" をロードするときに、CSS クラスを li タグに追加したいということです。

たとえば、誰かが /category/1 をクリックすると、出力は次のようになります。

<li class="active">.......</li>

どうすればこれを達成できますか?

4

2 に答える 2

0
   {%if app.request.server.get('REQUEST_URI')== path('viewCategoryItems', {'slugName': category.slugName})%} class="active"{%endif%}

これは私のために働いた

于 2013-02-20T14:05:29.233 に答える
0
<li  {% if app.request.attributes.get('_route') == 'category_view' %} 
         class="active" 
     {% endif %}>
</li>

ルートを確認し、ルートがカテゴリ ルートと一致する場合はクラスを設定します。category_view を /category のルート名に置き換えます

于 2013-02-20T13:22:50.027 に答える