将symfony2和doctrine2与doctrine树扩展一起使用,我最近更新了一个实体,使其成为一个学说嵌套集树。
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
它成功恢复了左右和水平值但不是root。 我无法手动设置根值(由学说监听器禁止)。
如何更新这些根值以使树能够正常工作?
谢谢!
答案 0 :(得分:-1)
好吧,我没有找到面向对象的解决方案,所以我去了一个原始的SQL查询。 我在任何实体获得父母之前这样做,因此每个实体的根值应该等于它自己的id。
在phpmyadmin中,粘贴以下sql查询并执行:
update recipe
set recipe.root = recipe.id