0

虽然我在这里阅读了手册:http: //www.doctrine-project.org/documentation/manual/1_2/hu/hierarchical-data 我找不到将节点从叶子移动到根节点的方法. 有什么线索吗?这个问题对于插入一个新节点来说是微不足道的......但是更新一个节点呢?

4

2 回答 2

0

像这样使用Doctrine_Node_NestedSet::makeRoot()

$item->getNode()->makeRoot($maxRootValue + 1);

您需要传递新root_id值,最简单的方法之一是MAX(root_id)从表中选择并增加其值。

于 2010-04-09T20:34:59.957 回答
0

正如 Crozin 所说,使用Doctrine_Node_NestedSet::makeRoot(),但使用项目的 id 而不是计算 的最大值root_id

root_id 是根节点的id

$item->getNode()->makeRoot($item->id);

没有必要计算 的值root_id。使用项目的 id 签名不会产生任何冲突,并且是 Doctrine 内部处理此问题的方式。

于 2012-07-28T17:24:06.747 回答