2012-10-19 86 views
1

我有一个Author实体,它是一个包含AuthorUserAuthorGroup的类表继承。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实体和AuthorGroupGroup实体。

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时,我需要提供UserGroup对象到author字段。我遵循这种行为,但似乎没有帮助。它变得更加复杂。

回答

相关问题