Zuordnung von ManyToOne-Assoziationen zu einer Entität zur Vererbung von Klassentabellen in Doctrine 2
ich habe einAuthor
Entität, bei der es sich um eine Klassentabellenvererbung handelt, die eineAuthorUser
und einAuthorGroup
.
/**
* Author
*
* @ORM\Table
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"user" = "AuthorUser", "group" = "AuthorGroup"})
*/
class Author {
// ...
}
AuthorUser
bezieht sich auf meineUser
Einheit undAuthorGroup
zu meinemGroup
Entität.
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;
}
Ich habe keine Ahnung, wie ich das umkehren soll. Wie auch immer, das Problem ist, dass ich diese CTI zu meiner hinzufügen mussArticle
Entitätsfeld. Wie kann ich mich mit ManyToOne auf dieses Artikel-Entitätsfeld beziehen?
class Article
{
/**
* @var Author
*
* @ORM\ManyToOne(targetEntity="Author", inversedBy="?????????")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
protected $author;
}
Ich bin mir nicht sicher, wie ich das so transparent wie möglich machen soll. Wenn ich ein neues erstelleArticle
Ich muss entweder eineUser
oderGroup
Einspruch gegen dieauthor
Feld. Ich bin diesem Verhalten gefolgt, aber es scheint nicht zu helfen. Es wird noch komplizierter.