IF语句不适用于Twig中的另一个IF语句

时间:2016-07-16 11:38:51

标签: php html symfony templates twig

我的枝条模板中有这样的结构

{% for category in categories %}
                    {% if category.parentId == 0 %}
                        {% set parent = category.id %}
                        <li class="menu-item dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                                {{ category.name }}
                                <span class="caret"></span>
                            </a>
                            <ul class="dropdown-menu">
                                {% if category.parentId == parent %}
                                    <li><a href="#">{{ category.id }}</a></li>
                                {% endif %}
                            </ul>
                        </li>
                    {% endif %}
                {% endfor %}

我的问题在于,第二个条件IF(如果category.parentId == parent)不起作用,因此,我无法获得子类别列表。

有人知道,那里有什么问题,我该如何解决?

由于

1 个答案:

答案 0 :(得分:1)

如果twig中的陈述工作正常,但你有错误。您将category.id与category.parentId在同一对象中进行比较。您必须为子类别设置另一个foreach循环。像这样:

{% for category in categories %}
                {% if category.parentId == 0 %}
                    {% set parent = category.id %}
                    <li class="menu-item dropdown">
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                            {{ category.name }}
                            <span class="caret"></span>
                        </a>
                        <ul class="dropdown-menu">
                          {% for subCategory in categories %}
                            {% if subCategory.parentId == parent %}
                                <li><a href="#">{{ subCategory.id }}</a></li>
                            {% endif %}
                          {% endfor %}
                        </ul>
                    </li>
                {% endif %}
            {% endfor %}