虽然我在这里阅读了手册: http://www.doctrine-project.org/documentation/manual/1_2/hu/hierarchical-data 我找不到从Leaf移动节点成为Root节点的方法。有线索吗? 插入新节点的问题很简单......但更新节点呢?
答案 0 :(得分:0)
像这样使用Doctrine_Node_NestedSet::makeRoot():
$item->getNode()->makeRoot($maxRootValue + 1);
您需要传递新的root_id
值,其中一种最简单的方法是从表中选择MAX(root_id)
并增加其值。
答案 1 :(得分:0)
正如所说的Crozin,使用Doctrine_Node_NestedSet::makeRoot()
,但使用项目的ID,而不是计算root_id
的最大值。
root_id是根节点的id
$item->getNode()->makeRoot($item->id);
无需计算root_id
的值。使用该项的id不会产生任何冲突,并且是Doctrine在内部处理它的方式。