Отображение связи ManyToOne с сущностью наследования таблиц классов в Doctrine 2
у меня естьAuthor
объект, который является наследованием таблицы классов, содержащейAuthorUser
иAuthorGroup
.
/**
* Author
*
* @ORM\Table
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"user" = "AuthorUser", "group" = "AuthorGroup"})
*/
class Author {
// ...
}
AuthorUser
относится к моемуUser
сущность иAuthorGroup
к моемуGroup
организация.
class AuthorUser extends Author
{
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="?????")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
}
class AuthorGroup extends Author
{
/**
* @var Group
*
* @ORM\ManyToOne(targetEntity="Group", inversedBy="?????")
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
*/
protected $user;
}
Я понятия не имею, как изменить это. Во всяком случае, проблема в том, что я должен добавить этот CTI к моемуArticle
поле сущности. Как я могу связать использование ManyToOne с этим полем сущности Article?
class Article
{
/**
* @var Author
*
* @ORM\ManyToOne(targetEntity="Author", inversedBy="?????????")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
protected $author;
}
Я не уверен, как сделать это максимально прозрачным. Когда я создаю новыйArticle
мне нужно предоставить либоUser
или жеGroup
возражать противauthor
поле. Я следовал за этим поведением, но это, кажется, не помогает. Это становится еще сложнее.