You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twig遍历多级菜单遇Array转字符串错误,求解决方案

解决Twig多级菜单的"Array to string conversion"错误

你的菜单数组结构完全没问题,报错的根源出在Twig代码的子菜单遍历逻辑上——你现在写的{% for items in menuitem %}是在遍历整个父菜单项的所有属性(包括title和items),当遍历到title这个字符串属性时,Twig会尝试把它当成数组处理,自然就抛出了"Array to string conversion"错误。

不需要修改菜单数组,只需要修正子菜单的遍历对象,把它指向menuitem.items而不是整个menuitem,就能解决问题。修改后的完整Twig代码如下:

{% for menuitem in site.menu %}
    {% if menuitem.items is defined %}
        <li class="c-drop">
            <a href="#">{{ menuitem.title }}</a>
            <div class="c-drop-menu">
                <ul class="list-inline">
                    {% for subitem in menuitem.items %} {# 修正为遍历menuitem.items #}
                        <li><a href="{{ subitem.url }}">{{ subitem.title }}</a></li>
                    {% endfor %}
                </ul>
            </div>
        </li>
    {% else %}
        <li><a href="{{ menuitem.url }}">{{ menuitem.title }}</a></li>
    {% endif %}
{% endfor %}

效果说明

  • 普通菜单项(Nieuws、PSV、PSV Watchers、Transfers)会直接渲染成带对应URL的<li>标签
  • 包含items的菜单项(Standen、Kalender)会渲染成带下拉容器的结构,子菜单会正确遍历menuitem.items里的每一项

内容的提问来源于stack exchange,提问作者abbob1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:54:48