Symfony Отображение древовидной структуры в Form Entity Type

d1gi

Новичок
Имеется сущность, у которой реализовано дерево через указание родителя.
PHP:
// ...
class Folder
{
    /**
     * @ORM\ManyToOne(targetEntity="Folder")
     * @ORM\JoinColumn(name="pid", referencedColumnName="id")
     */
    protected $parent;

    // ...
}
Форма сделана так:
PHP:
$builder->add('parent', 'entity', array(
    'class' => 'MyBundle:Folder',
    ))
В таком случае список "Папок" получается "плоским", из простого максимум что можно сделать это описать в форм билдере query_builder и отсортировать по какому либо полю...

Требуется: вывести список "папок" в древовидном виде. например сейчас список всех папок будет выглядеть примерно так:
Код:
Folder1
Folder2
Folder3
Folder4
а должен например так:
Код:
Folder1
  Folder4
    Folder3
  Folder2
т.е. будет тотже самый select option, но в особом порядке в соотвествии с иерархией parent-child, также внутри option добавлять пару пробелов для визуального отступа.

Вторая задача более сложная: было бы очень удобно скажем при редактировании Folder4 в списке пункт Folder3 отображать неактивным т.к. нельзя задать в качестве родителя своегоже детку :) ну и третий вопрос: как проверять этот же момент при сохранении?
 

hell0w0rd

Продвинутый новичок
Я так понимаю последние два вопроса решаются через валидацию.
 
Сверху