1
我有一個Author
實體,它是一個包含AuthorUser
和AuthorGroup
的類表繼承。ManyToOne關聯映射到Doctrine 2中的類表繼承實體
/**
* 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
字段。我遵循這種行爲,但似乎沒有幫助。它變得更加複雜。