当我从数据库循环结果时我正在构建导航菜单它正常使用此代码
foreach ($menu as $item) {
echo $item->name_english . ' ';
if ($item->childs->count()) {
foreach ($item->childs as $row) {
echo $row->name_english . ' | ';
}
}
}
这个id输出
第一个第二个孩子1 | child2 |第三名
当我在twig中使用相同的代码时,我没有得到childs循环的结果
{% if menu %}
<ul>
{% for item in menu %}
<li>{{ item.name_english }}</li>
{% if item.childs.count() %}
<ul>
{% for stuff in item.childs %}
<li>{{ stuff.name_english }}</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
</ul>
{% endif %}
这是输出
答案 0 :(得分:1)
要检查树枝中阵列的数量,请使用length
过滤器。此外,使用树枝时应该更具体。使用menu is not null
代替menu
。
{% if menu is not null and menu|length > 0 %}
<ul>
{% for item in menu %}
<li>{{ item.name_english }}</li>
{% if item.childs|length > 0 %}
<ul>
{% for stuff in item.childs %}
<li>{{ stuff.name_english }}</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
</ul>
{% endif %}