У меня есть две сущности, между которыми существует отношение ManyToMany blogPost
et Category
et ассоциативная таблица blogPost_Category
.
PS: Таблицы существуют в базе данных.
Итак, я начинаю создавать сущности
<?php
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\Column;
/**
*@ORM\Table(name="blogPost")
*@ORM\Entity("App\TestBundle\Repository\BlogPostRepository")
*/
class blogPost {
/**
*@Id
*Column(name="ID", type="integer", length=20, nullable=false, unique=true)
*/
private $id;
.
.
.
/**
*@ORM\ManyToMany(targetEntity="Category", inversedBy="blogPosts")
*@ORM\JoinTable(name="blogPost_Category",
*joinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")},
*inverseJoinColumns={@ORM\joinColumn(name="id", referencedColumnName="id")}
*)
*/
private $categories;
public function __construct()
{
$this->categories = new ArrayCollection();
}
public function getCategories()
{
return $this->categories;
}
.
.
.
Другая сущность имеет те же данные и структуру, и когда я вызываю, например, getCategories
на контроллере, я получаю эту ошибку
Идентификатор столбца должен быть сопоставлен с полем в классе App \ TestBundle \ Entity \ blogPost, поскольку на него ссылается столбец соединения другого класса.
есть ли решение?
если нет, могу ли я создать сущность для ассоциативной таблицы и использовать ManyToOne в двух направлениях?