2012-10-19 173 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字段。我遵循這種行爲,但似乎沒有幫助。它變得更加複雜。

回答

相關問題