【问题标题】:Doctrine Trait override OneToMany relationDoctrine Trait 覆盖 OneToMany 关系
【发布时间】:2017-03-18 15:05:44
【问题描述】:

我有trait,看起来像这样

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

Comment.php 我有ManyToOne 关系

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 关系的工作示例。有什么办法吗?

【问题讨论】:

    标签: php symfony doctrine-orm doctrine


    【解决方案1】:

    您可以在类中使用trait 并覆盖那里的关系。例如:

    class Article
    {
        use CommentableTrait;
    
        /**
         * @See CommentableTrait
         * @OneToMany(targetEntity="Comment", mappeBy="article")
         *
         */
         $comments      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多