Menu 带细枝的多级菜单
要生成简单菜单,我可以执行以下操作:Menu 带细枝的多级菜单,menu,twig,Menu,Twig,要生成简单菜单,我可以执行以下操作: <ul> {% for item in items %} <li>{{ item }}</li> {% endfor %} </ul> 但是,如果我想创建无尽的深度菜单,比如: <ul> <li>Alpha</li> <li>Bravo</li> <ul> <li>Charlie&l
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
但是,如果我想创建无尽的深度菜单,比如:
<ul>
<li>Alpha</li>
<li>Bravo</li>
<ul>
<li>Charlie</li>
<li>Delta</li>
<li>Echo</li>
<ul>
<li>Foxtrott</li>
</ul>
<li>Golf</ul>
</ul>
<li>Hotel</li>
<li>India</li>
</ul>
- 阿尔法
- 好极了
- 查理
- 三角洲
- 回音
- 福克斯特洛特
- 高尔夫
酒店
印度
谢谢你的帮助 要在
twig
中执行递归,可以使用宏的
{% import _self as macro %}
{{ macro.multilevel(foo) }}
{% macro multilevel(array) %}
{% import _self as macro %}
<ul>
{% for item in array %}
<li>
{% if item is iterable %}
{{ macro.multilevel(item) }}
{% else %}
{{ item }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endmacro %}
tiwg
{%宏菜单(链接)%}
{%import\u self作为宏%}
{%用于链接中的链接%}
-
{%if-not-link['children']|默认值([])为空%}
{{macro.menu(链接['children'])}
{%endif%}
{%endfor%}
{%endmacro%}
谢谢。但在您的示例中,在“Beta”之后生成了一个
- 应直接位于第二个
- 内。嗯,可能吗?还有可能,在每个
- 中加入一个,使itam滴度进入而不是进入
- ?
{% import _self as macro %} {{ macro.multilevel(foo) }} {% macro multilevel(array) %} {% import _self as macro %} <ul> {% for item in array %} <li> {% if item is iterable %} {{ macro.multilevel(item) }} {% else %} {{ item }} {% endif %} </li> {% endfor %} </ul> {% endmacro %}
$data = [ 'links' => [ [ 'title' => 'alpha', 'href' => 'http://www.alpha.com', 'children' => [], ], [ 'title' => 'beta', 'href' => 'http://www.beta.com', 'children' => [ [ 'title' => 'charlie', 'href' => 'http://www.charlie.com', 'children' => [], ], [ 'title' => 'delta', 'href' => 'http://www.delta.com', 'children' => [], ], [ 'title' => 'echo', 'href' => 'http://www.echo.com', 'children' => [ [ 'title' => 'foxtrot', 'href' => 'http://www.foxtrot.com', 'children' => [], ], ], ], ], ], ] ];
{% macro menu(links) %} {% import _self as macro %} <ul> {% for link in links %} <li> <a href="{{ link['href'] }}">{{ link['title'] }}</a> {% if not link['children']|default([]) is empty %} {{ macro.menu(link['children']) }} {% endif %} </li> {% endfor %} </ul> {% endmacro %}