提问人:Sébastien 提问时间:5/23/2015 最后编辑:NiklasSébastien 更新时间:5/24/2015 访问量:476
如何恢复根节点
How to recover root nodes
问:
使用带有 doctrine 树扩展的 symfony2 和 doctrine2,我最近更新了一个实体,使其成为 doctrine 嵌套集树。
学说架构更新强制添加了带有空数据的右列。
然后我运行了以下代码:
$repo = $this->getDoctrine()->getRepository('AppBundle:FoodAnalytics\Recipe');
$repo->verify();
// can return TRUE if tree is valid, or array of errors found on tree
$repo->recover();
$this->flush(); // important: flush recovered nodes
// if tree has errors it will try to fix all tree
它成功恢复了左、右和电平值,但没有恢复根值。 我无法手动设置根值(教义侦听器禁止)。
如何更新这些根值,以便树可以正常工作?
谢谢!
答:
-1赞
Sébastien
5/24/2015
#1
好吧,我没有找到面向对象的解决方案,所以我选择了原始 SQL 查询。 我是在任何实体获得父实体之前执行此操作的,因此每个实体的根值都应等于自己的 ID。
在 phpmyadmin 中,粘贴以下 sql 查询并执行:
update recipe
set recipe.root = recipe.id
评论