PHP原则1.2使用嵌套集,如何在不同情况下移动节点
我使用嵌套集和原则1.2 这是我的例子 我得到了这棵树PHP原则1.2使用嵌套集,如何在不同情况下移动节点,php,nested-sets,doctrine-1.2,Php,Nested Sets,Doctrine 1.2,我使用嵌套集和原则1.2 这是我的例子 我得到了这棵树 Category 1 Category 1.1 Category 1.2 Category 1.3 Category 1.4 Category 2 Category 2.1 Category 2.1.1 Category 2.1.2 Category 2.1.3 形势 1-如何将类别1.3移动到类别1.1之上 2-如何将类别1.4移动到类别1.3中 3-我如何将2.1和他的
Category 1
Category 1.1
Category 1.2
Category 1.3
Category 1.4
Category 2
Category 2.1
Category 2.1.1
Category 2.1.2
Category 2.1.3
形势1-如何将类别1.3移动到类别1.1之上
2-如何将类别1.4移动到类别1.3中
3-我如何将2.1和他的孩子移动到1类和1.1类旁边
情景1会给我:
Category 1
Category 1.3
Category 1.1
Category 1.2
Category 1.4
...
Category 1
Category 1.1
Category 2
Category 2.1
Category 2.1.1
Category 2.1.2
Category 2.1.3
Category 1.2
Category 1.3
Category 1.4
情况2会给我:
Category 1
Category 1.1
Category 1.2
Category 1.3
Category 1.4
...
情况3会给我:
Category 1
Category 1.3
Category 1.1
Category 1.2
Category 1.4
...
Category 1
Category 1.1
Category 2
Category 2.1
Category 2.1.1
Category 2.1.2
Category 2.1.3
Category 1.2
Category 1.3
Category 1.4
看
请注意,您最初的问题并不完全正确:在案例3)中,您说您只想将2.1移动到类别1中,但根据您为该场景提供的示例,您实际上想将所有类别2移动到类别1中
假设您提到的名称(类别1.1)是类别的实际ID,下面是您描述的场景:
$cat11 = Doctrine_Core::getTable("Category")->find("Category 1.1");
$cat13 = Doctrine_Core::getTable("Category")->find("Category 1.3");
$cat14 = Doctrine_Core::getTable("Category")->find("Category 1.4");
$cat21 = Doctrine_Core::getTable("Category")->find("Category 2.1");
将1.3移至1.1类之上:
$cat13->getNode()->moveAsPrevSiblingOf($cat11);
$cat21->getNode()->moveAsNextSiblingOf($cat11);
将1.4移到1.3内:
$cat14->getNode()->moveAsFirstChildOf($cat13);
将所有类别2移动到类别1内,靠近类别1.1:
$cat13->getNode()->moveAsPrevSiblingOf($cat11);
$cat21->getNode()->moveAsNextSiblingOf($cat11);
不要忘记在操作后保存类别,例如$cat11->save()。保存您正在处理的类别就足够了 快速提问。情况2不会给你“1.3.1类”而不是“1.4类”吗?