2017-03-18 26 views
0

我有trait它看起來像這樣主義特質覆蓋一對多關係

trait CommentableTrait 
{ 
    /** 
    * @OneToMany(targetEntity="Comment", mappeBy="to_override") 
    * 
    */ 
    protected $comments; 
} 

Comment.phpManyToOne關係

class Comment 
{ 
    /** 
    * @ManyToOne(targetEntity="Article", inversedBy="comments") 
    */ 
    protected $article; 

    /** 
    * @ManyToOne(targetEntity="Page", inversedBy="comments") 
    */ 
    protected $page; 

    /** 
    * @ManyToOne(targetEntity="Page", inversedBy="comments") 
    */ 
    protected $question; 

} 

我想在我的實體使用這個特質Article.phpPage.phpQuesion.php像這樣:

class Article 
{ 
    use CommentableTrait; 
} 

我需要覆蓋CommenatableTrait中的mappedBy

我試着從Doctrine - Override Field Association Mappings In Subclasses

解決它與OneToOneManyToMany關係,但我無法找到雙向OneToMany - ManyToOne關係工作的例子。有沒有辦法做到這一點?

回答

0

您可以在一個類中使用trait並覆蓋那裏的關係。例如:

class Article 
{ 
    use CommentableTrait; 

    /** 
    * @See CommentableTrait 
    * @OneToMany(targetEntity="Comment", mappeBy="article") 
    * 
    */ 
    $comments  
}