http://sqlfiddle.com/#!9/1d4a6/1
我有现有的分类层次结构数据。我一直在使用传统的方法来使用parent_id获取parent、child等。
现在,我正试图使用Gedmo学说来进行同样的扩展。我已经安装了扩展并更新了架构。
如果我像文档示例中给出的那样用父子关系创建新的类别,它会起作用。它正确地填充lft、lvl、rgt和根列。
$food = new EntityCategory();
$food->setTitle('Food');
$fruits = new EntityCategory();
$fruits->setParent($food);
$fruits->setTitle('Fruits');
$apple = new EntityCategory();
$apple->setParent($fruits);
$apple->setTitle('Apple');
$milk = new EntityCategory();
$milk->setParent($food);
$milk->setTitle('Milk');
$em->persist($food);
$em->persist($milk);
$em->persist($fruits);
$em->persist($apple);
$em->flush();
但我的旧类别的以上列有0个值。
我尝试获取所有结果并更新它们,但上面列的所有值仍然为0。
更新1:
添加此
$repo->recover();
填充的lft和rgt,但是lvl和root仍然是0&空响应。
只更新左右:
$repo->verify();
$repo->recover();
$em->flush();
但我仍在研究如何更新级别:)
您需要在恢复之前清除缓存
$em->clear();
$repo->verify();
$repo->recover();
$em->flush();