Profundidade infantil ilimitada do Symfony2 Twig

Eu tenho uma tabela self-joining onde cada pasta tem um pai, e a profundidade disso é ilimitada. Uma pasta pode ter outra pasta como pai, sem restrição na profundidade.

Hoje meu código se parece com isso, e eu estou procurando uma maneira de cavar o mais fundo possível sem codificar cada passo abaixo, talvez haja uma maneira de definir uma função de ramificação com um loop, que se chama a cada ciclo no loop?

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

questionAnswers(2)

yourAnswerToTheQuestion