DoctrineExtensions - 树对象类:MyBundle \ Entity \ Category此时必须具有树元数据

时间:2014-08-22 18:40:39

标签: php symfony doctrine-orm doctrine-extensions stofdoctrineextensions

我想在我的Symfony2应用程序中使用DoctrineExtensions的树特性。

但是我收到了这个错误:

Tree object class: MyBundle\Entity\Category must have tree metadata at this point.

Symfony:v2.5.3

共同主义:v2.4.2

DoctrineExtensions:Master

<?php

namespace MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * Category
 * @Gedmo\Tree(type="nested")
 * @ORM\Table(name="category", uniqueConstraints={@ORM\UniqueConstraint(name="id", columns={"id"})})
 * use repository for handy tree functions
 * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
 */
class Category
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

     /**
     * @Gedmo\TreeLeft
     * @ORM\Column(name="lft", type="integer")
     */
    private $lft;

    /**
     * @Gedmo\TreeLevel
     * @ORM\Column(name="lvl", type="integer")
     */
    private $lvl;

     /**
     * @Gedmo\TreeRight
     * @ORM\Column(name="rgt", type="integer")
     */
    private $rght;

    /**
     * @Gedmo\TreeRoot
     * @ORM\Column(name="root", type="integer", nullable=true)
     */
    private $root;

     /**
     * @Gedmo\TreeParent
     * @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
     * @ORM\JoinColumn(name="parentId", referencedColumnName="id", onDelete="CASCADE")
     */
    private $parentid;

    /**
     * @ORM\OneToMany(targetEntity="Category", mappedBy="parentid")
     * @ORM\OrderBy({"lft" = "ASC"})
     */
    private $children;

我跟着this document在Symfony2中安装了Gedmo Doctrine2扩展,但似乎出了点问题。

2 个答案:

答案 0 :(得分:1)

也许这会帮助某人。 就我而言,我重新启动了Web服务器和fpm,此错误消失了。

答案 1 :(得分:0)

我看到这个问题已在3年前被问过,但无论如何。我想问题是你必须在CategoryRepository构造函数中初始化doctrine树,所以你需要在你的repo中使用这段代码:

use NestedTreeRepositoryTrait;
$this->initializeTreeRepository($em, $class);
相关问题