Я пытаюсь скопировать пример из gedmo nested-set extension blog , где есть много родительских узлов. Там вы можете создать столько же подвижных родительских узлов, сколько дочерних (что типично для вложенного набора & shy; Wikipedia ).
Чтение раздела комментариев через общие советы - удаление @Gedmo\TreeRoot annotation/mapping
, но если я это сделаю, я смогу переместить корневые узлы, но дерево сломается, особенно левый и правый идентификаторы. Если я сохраню TreeRoot
и попытаюсь переместить корневые узлы, я получу «братьев и сестер без узлов» или что-то в этом роде, как и ожидалось.
Глядя на живой пример в блоге расширений, вы можете видеть, что вы можете создать категорию без родителя и перемещать ее вверх или вниз.
Сущность моей категории - соответствующие части:
class Category
{
/**
* @Gedmo\TreeLeft
* @ORM\Column(name="lft", type="integer")
*/
private $lft;
/**
* @Gedmo\TreeLevel
* @ORM\Column(name="lvl", type="integer")
*/
private $lvl;
/**
* @Gedmo\TreeRight
* @ORM\Column(name="rgt", type="integer")
*/
private $rgt;
/**
* @Gedmo\TreeRoot
* @ORM\Column(name="root", type="integer", nullable=true)
*/
private $root;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
* @ORM\OrderBy({"lft" = "ASC"})
* @Exclude
*/
private $children;
}
Вопрос: Как создать множественное корневое дерево (я хотел бы избежать создания фиктивной категории, которая будет единичным корнем, и добавлять все остальное как дочерний элемент этого узла) и иметь возможность перемещать корневые узлы вверх и вниз?
P.S. Я на главной ветке.