Php 使用Twig创建导航菜单

Php 使用Twig创建导航菜单,php,html,templates,twig,Php,Html,Templates,Twig,如何使用Twig创建导航菜单?请注意,我没有使用Sympony2 给定传递给细枝模板的以下数组: $menu_main=array( 'active'=>2, 'menu'=>array( array('components_id'=>2,'name'=>'First Link','newwindow'=>0), array('components_id'=>3,'name'=>'Second Link',

如何使用Twig创建导航菜单?请注意,我没有使用Sympony2

给定传递给细枝模板的以下数组:

$menu_main=array(
    'active'=>2,
    'menu'=>array(
        array('components_id'=>2,'name'=>'First Link','newwindow'=>0),
        array('components_id'=>3,'name'=>'Second Link','newwindow'=>0),
        array('components_id'=>7,'name'=>'Third Link','newwindow'=>1),
        array('components_id'=>8,'name'=>'Forth Link','newwindow'=>0)
    )
);
我正在尝试创建以下导航菜单:

<ul>
    <li class="first active"><a href="index.php?cid=2">First Link</a></li>
    <li><a href="index.php?cid=3">Second Link</a></li>
    <li><a href="index.php?cid=7" target="_blank">Third Link</a></li>
    <li class="last"><a href="index.php?cid=8">Forth Link</a></li>
</ul>
以下是我的非工作尝试:

{#
menu_main is an associated array containing active key and menu key.
menu is an associated array of containing name, components_id, and whether it should open a new window
#}
<ul>
    {% for item in menu_main.menu %}
    <li
    {% if item.components_id == menu_main.active %}
    class="active"
    {# How do I add first and last class?  Maybe using length? #}
    {% endif%}>
    <a href="{{ item[0] }}">{{item[1]}}{% if item.newwindow %} target="_blank" {% endif%}></a>
    </li>
    {% endfor %}
</ul>
{#
menu_main是包含活动键和菜单键的关联数组。
菜单是一个关联数组,包含名称、组件id以及是否应打开新窗口
#}
    {menu_main.menu%}中项目的%
  • {%endfor%}
这应该适合您。 由于$main_menu['menu']数组是关联细枝,因此无法理解项[0]或项[1]

{#
menu_main is an associated array containing active key and menu key.
menu is an associated array of containing name, components_id, and whether it should open a new window
#}
<ul>
    {% for item in menu_main.menu %}
    {% set classes = "" %}
    <li
    {% if item.components_id == menu_main.active %}
        {% set classes = classes~' active ' %}
    {% endif%}>
    {% if loop.first %}
        {% set classes = classes~' first ' %}
    {% elseif loop.last %}
        {% set classes = classes~' last ' %}
    {% endif %}
    <a class="{{ classes }}" href="index.php?cid={{ item['components_id'] }}">{{item['name']}}</a>
    </li>
    {% endfor %}
</ul>
{#
menu_main是包含活动键和菜单键的关联数组。
菜单是一个关联数组,包含名称、组件id以及是否应打开新窗口
#}
    {menu_main.menu%}中项目的% {%set classes=”“%}
  • {%if loop.first%} {%set classes=classes~'第一个“%” {%elseif loop.last%} {%set classes=classes~'最后一个“%” {%endif%}
  • {%endfor%}

了解相关阵列的相关信息。添加“first”和“last”类名怎么样?这将只添加“active”类。您可以在for循环的内部使用“loop.first”和“loop.last”。我会为它编辑答案。谢谢!刚开始用小树枝。我喜欢:)但是还有很多我还不知道的:(啊,我看到你用
~
来追加。再次感谢!