移动"root"或父节点 - Doctrine NestedSet扩展

Mar*_*vić 5 php mysql doctrine nested-sets symfony

我试图从gedmo 嵌套集扩展博客复制示例,其中有许多父节点.在那里,你可以创建许多可移动的父节点以及儿童(这是典型的一组嵌套的维基百科).

阅读评论部分,常见的建议是删除@Gedmo\TreeRoot annotation/mapping,但如果我这样做,我就能够移动根节点,但树会被打破特别是左右id.如果我保留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;
}
Run Code Online (Sandbox Code Playgroud)

问题:如何制作多个根树(我想避免创建将是单根的假类别,并将其他所有内容添加为该节点的子节点),并能够上下移动根节点?

PS我在主分公司.

小智 -3

您可以交换根节点的 id 来重新排序。