PHP Doctrine ORM NestedSet

时间:2010-03-14 11:53:44

标签: php orm doctrine nested-sets

虽然我在这里阅读了手册: http://www.doctrine-project.org/documentation/manual/1_2/hu/hierarchical-data 我找不到从Leaf移动节点成为Root节点的方法。有线索吗? 插入新节点的问题很简单......但更新节点呢?

2 个答案:

答案 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在内部处理它的方式。