1

Symfony2 アプリケーションで DoctrineExtensions のツリー機能を使用したいと考えています。

しかし、私はこのエラーが発生します:

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

シンフォニー:v2.5.3

ドクトリン共通: v2.4.2

DoctrineExtensions : マスター

<?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;

このドキュメントに従ってSymfony2 に Gedmo Doctrine2 拡張機能をインストールしましたが、何か問題があるようです。

4

2 に答える 2

1

多分これは誰かを助けるでしょう。私の場合、Web サーバーと fpm を再起動したところ、このエラーはなくなりました。

于 2019-01-09T09:49:34.737 に答える
0

この質問は 3 年前に尋ねられたようですが、とにかく。問題は、CategoryRepository コンストラクターでドクトリン ツリーを初期化する必要があることだと思います。そのため、このコード スニペットが ur repo に必要です。

use NestedTreeRepositoryTrait;
$this->initializeTreeRepository($em, $class);
于 2018-02-09T15:41:59.020 に答える