2

http://sqlfiddle.com/#!9/1d4a6/1

我有现有的类别分层数据。我一直在使用传统方法来使用 parent_id 获取父母、孩子等。

现在我正在尝试使用 Gedmo 学说扩展。我已经安装了扩展并更新了架构。

如果我按照文档示例中给出的父子项创建新类别,则它可以工作。它正确地填充 lft、lvl、rgt、根列。

   $food = new Entity\Category();
    $food->setTitle('Food');

    $fruits = new Entity\Category();
    $fruits->setParent($food);
    $fruits->setTitle('Fruits');

    $apple = new Entity\Category();
    $apple->setParent($fruits);
    $apple->setTitle('Apple');

    $milk = new Entity\Category();
    $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 和 NULL。

4

2 回答 2

0

只更新左右:

    $repo->verify();
    $repo->recover();
    $em->flush();

但我仍在寻找如何更新关卡:)

于 2015-07-09T07:51:28.220 回答
0

您需要在恢复之前清除缓存

$em->clear();
$repo->verify();
$repo->recover();
$em->flush();
于 2021-07-01T13:32:58.683 回答