树枝循环空结果

时间:2015-10-15 21:05:12

标签: php model-view-controller twig

当我从数据库循环结果时我正在构建导航菜单它正常使用此代码

 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 %}

这是输出

  • 第一
  • second
  • 第三
  • 第四

1 个答案:

答案 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 %}