许多教义2中的许多关联映射到班级表的继承实体2



我有一个 Author实体,它是包含 AuthorUserAuthorGroup的类表继承。

/**
 * Author
 *
 * @ORMTable
 * @ORMEntity
 * @ORMInheritanceType("JOINED")
 * @ORMDiscriminatorColumn(name="type", type="string")
 * @ORMDiscriminatorMap({"user" = "AuthorUser", "group" = "AuthorGroup"})
 */
class Author {
    // ...
}

AuthorUser与我的User实体有关,而AuthorGroup与我的Group实体有关。

class AuthorUser extends Author
{
    /**
     * @var User
     *
     * @ORMManyToOne(targetEntity="User", inversedBy="?????")
     * @ORMJoinColumn(name="user_id", referencedColumnName="id")
     */
    protected $user;
}
class AuthorGroup extends Author
{
    /**
     * @var Group
     *
     * @ORMManyToOne(targetEntity="Group", inversedBy="?????")
     * @ORMJoinColumn(name="group_id", referencedColumnName="id")
     */
    protected $user;
}

我不知道如何倒数。无论如何,问题是我必须将此CTI添加到我的Article Entity字段中。如何使用许多人与本文实体字段联系?

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

我不确定如何使其尽可能透明。当我创建新的Article时,我需要向author字段提供UserGroup对象。我遵循这种行为,但似乎没有帮助。它变得更加复杂。

一个解决方案可能是始终拥有授权组,即使只有一个作者。

否则,请看一下https://github.com/fabienpennequin/doctrineextensions-artable

您可能可以使用该代码来提供类似的作者接口,该接口可以区分作者和作者组。

最新更新