«Ассоциация относится к обратной стороне поля» и «отображения несовместимы с самим собой» - PullRequest
0 голосов
/ 20 октября 2018

У меня есть одна сущность, и это связь с самим собой.категория связана с самим собой, а имя поля является родительским.при загрузке страницы отображаются ошибки отображения в профилировщике.

/**
 * Category
 *
 * @ORM\Table(name="category")
 * @ORM\Entity(repositoryClass="AdminBundle\Repository\CategoryRepository")
 * @UniqueEntity("urlcode")
 */
class Category
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="Title", type="string", length=255)
     */
    private $title;

    /**
     * @var string
     *
     * @ORM\Column(name="urlcode", type="string", length=255)
     */
    private $urlcode;

    /**
     * @var string
     *
     * @ORM\Column(name="image", type="string", length=255)
     */
    private $image;

    /**
     * @var int
     *
     * @ORM\Column(name="digiid", type="integer", unique=true)
     */
    private $digiid;

    /**
     * @ORM\ManyToOne(targetEntity="Category", inversedBy="Category")
     * @ORM\JoinColumn(name="parent", referencedColumnName="id")
     */
    private $parent;



    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set title
     *
     * @param string $title
     *
     * @return Category
     */
    public function setTitle($title)
    {
        $this->title = $title;

        return $this;
    }

    /**
     * Get title
     *
     * @return string
     */
    public function getTitle()
    {
        return $this->title;
    }

    /**
     * Set urlcode
     *
     * @param string $urlcode
     *
     * @return Category
     */
    public function setUrlcode($urlcode)
    {
        $this->urlcode = $urlcode;

        return $this;
    }

    /**
     * Get urlcode
     *
     * @return string
     */
    public function getUrlcode()
    {
        return $this->urlcode;
    }

    /**
     * Set image
     *
     * @param string $image
     *
     * @return Category
     */
    public function setImage($image)
    {
        $this->image = $image;

        return $this;
    }

    /**
     * Get image
     *
     * @return string
     */
    public function getImage()
    {
        return $this->image;
    }

    /**
     * Set digiid
     *
     * @param integer $digiid
     *
     * @return Category
     */
    public function setDigiid($digiid)
    {
        $this->digiid = $digiid;

        return $this;
    }

    /**
     * Get digiid
     *
     * @return integer
     */
    public function getDigiid()
    {
        return $this->digiid;
    }

    /**
     * Set parent
     *
     * @param \AdminBundle\Entity\Category $parent
     *
     * @return Category
     */
    public function setParent(\AdminBundle\Entity\Category $parent = null)
    {
        $this->parent = $parent;

        return $this;
    }

    /**
     * Get parent
     *
     * @return \AdminBundle\Entity\Category
     */
    public function getParent()
    {
        return $this->parent;
    }

    public function __toString()
    {
        return $this->title;
    }
}

profiler:

Ассоциация AdminBundle \ Entity \ Product # Категория относится к полю обратной стороны AdminBundle \ Entity \ Category #Категория, которая не существует.

Ассоциация AdminBundle \ Entity \ Product # brand ссылается на обратное боковое поле AdminBundle \ Entity \ Brand # Brand, которого не существует.

Отображения AdminBundle \ Entity\ Product # link и AdminBundle \ Entity \ Link # product несовместимы друг с другом.

Ассоциация AdminBundle \ Entity \ Category # parent ссылается на поле обратной стороны AdminBundle \ Entity \ Category # Category, которая не существует.

Ассоциация AdminBundle \ Entity \ Category # категория относится к полю-владельцу поля AdminBundle \ Entity \ Category # Category, которое не существует.

1 Ответ

0 голосов
/ 20 октября 2018

Ваша проблема вызвана inversedBy="Category".Ошибка говорит о том, что атрибута Category::$Category нет, и на самом деле его нет. Параметры

inversedBy используются для определения другой стороны отношения с целью создания двунаправленной связи.

В вашем случае, вероятно, будет children, если вы захотите иметь доступ от родителя к дочерним категориям.

Поскольку у вас его нет, вы можете просто удалить этот параметр.И похоже, что этот параметр неправильно используется и в других объектах.

Если вам нужна дополнительная информация о том, как определять отношения в Doctrine ORM, взгляните на документацию

...