gpt4 book ai didi

php - Symfony2 Twig 无限子深度

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:07 24 4
gpt4 key购买 nike

我有一个自连接表,其中每个文件夹都有一个父文件夹,而且这个文件夹的深度是无限的。一个文件夹可以有另一个文件夹作为父文件夹,没有深度限制。

今天我的代码看起来像这样,我正在寻找一种方法来挖掘它需要的深度,而无需对每个步骤进行硬编码,是否有一种方法可以定义一个带有循环的 twig 函数,它会调用自己在循环中的每一轮?

<select id='parent' name='container'>
<option value='none'>No parent</option>
{% for folder in folders %}
<option value='{{ folder.id }}'>{{ folder.name }}</option>
{% for folder in folder.children %}
<option value='{{ folder.id }}'>&nbsp;&nbsp;&nbsp;{{ folder.name }}</option>
{% endfor %}
{% endfor %}
</select>

最佳答案

你需要一个单独的文件呈现选项,递归地包含它自己:

<select>
<option value="none">No parent</option>
{% include 'options.html.twig' with {'folders': folders, 'level': 0} %}
</select>

options.html.twig:

{% for folder in folders %}
<option value="{{ folder.id }}">
{% for i in range(0, level) %}&nbsp;{% endfor %}
{{ folder.name }}
</option>

{% include 'options.html.twig' with {'folders': folder.children, 'level': level + 1} %}
{% endfor %}

我在这里写了这段代码,所以不要指望它是正确的,但它应该足以让你明白。

关于php - Symfony2 Twig 无限子深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12583177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com