Php 原则2中,映射到类表继承实体的多通关联

Php 原则2中,映射到类表继承实体的多通关联,php,doctrine,doctrine-orm,Php,Doctrine,Doctrine Orm,我有一个Author实体,它是一个类表继承,包含一个AuthorUser和一个AuthorGroup /** * Author * * @ORM\Table * @ORM\Entity * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="type", type="string") * @ORM\DiscriminatorMap({"user" = "AuthorUser", "group" = "Aut

我有一个
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添加到我的
文章
实体字段中。如何将使用ManyToOne与本文实体字段联系起来

class Article
{
    /**
     * @var Author
     *
     * @ORM\ManyToOne(targetEntity="Author", inversedBy="?????????")
     * @ORM\JoinColumn(name="author_id", referencedColumnName="id")
     */
    protected $author;
}

我不知道如何使这一点尽可能透明。创建新的
文章
时,我需要向
作者
字段提供
用户
对象。我遵循了这个行为,但似乎没有帮助。它变得更加复杂

一种解决方案是始终拥有AuthorGroups,即使只有一个作者

否则,请看

您可以使用该代码提供类似的编写接口,以区分AuthorUser和AuthorGroup