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 erstelleArticleIch muss entweder eineUser oderGroup Einspruch gegen dieauthor Feld. Ich bin diesem Verhalten gefolgt, aber es scheint nicht zu helfen. Es wird noch komplizierter.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage