在树枝中过滤相关实体

时间:2017-08-27 20:38:23

标签: symfony twig

[设置]

  • Symfony 3
  • ContainerEntity:[id,name]
    • 可以包含0,n BoxEntity
  • BoxEntity:[id,container_id,parent,name]
    • 始终与ContainerEntity相关联
    • 可以包含0,n BoxEntity

[数据库内容]

容器

------------------
| id |    name   |
------------------
|  1 | container |
------------------

--------------------------------------
| id | container_id | parent | name  |
--------------------------------------
|  1 |            1 |   null | box 1 |
--------------------------------------
|  2 |            1 |   null | box 2 |
--------------------------------------
|  3 |            1 |      1 | box 3 |
--------------------------------------

[FILES]

inventory.html.twig

{% if container.box|length > 0 %}
    {% for box in container.box %}
        <li class="nav_menu_item">
            <a class="nav_menu_link" href="">{{ box.name }}</a>
            {% if box.inbox|length > 0 %}
                <div class="nav_menu_dropdown">
                    <ul>
                        {% for inbox in box.inbox %}
                            <li class="nav_menu_dropdown_item">
                                <a class="nav_menu_dropdown_link" href="">{{ inbox.name }}</a>
                            </li>
                        {% endfor %}
                    </ul>
                </div>
            {% endif %}
        </li>
    {% endfor %}
{% endif %}

[问题]

在twig中,我想根据它的parent参数过滤相关实体列表。
目前,执行{{ container.box|length }}将返回3个框(与{% for ... %}相同的问题)

如何才能获得container.box为空的所有box.parent

1 个答案:

答案 0 :(得分:1)

试试这个

{% for box in container.box if box.parent is null %}