如何使用symfony中的gedmo树原则扩展来更新现有类别层次结构数据上的左、右、级别值



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();

相关内容

  • 没有找到相关文章

最新更新