我想在我的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扩展,但似乎出了点问题。
答案 0 :(得分:1)
也许这会帮助某人。 就我而言,我重新启动了Web服务器和fpm,此错误消失了。
答案 1 :(得分:0)
我看到这个问题已在3年前被问过,但无论如何。我想问题是你必须在CategoryRepository构造函数中初始化doctrine树,所以你需要在你的repo中使用这段代码:
use NestedTreeRepositoryTrait;
$this->initializeTreeRepository($em, $class);