Reputation: 1503
I have trait
which looks like this
trait CommentableTrait
{
/**
* @OneToMany(targetEntity="Comment", mappeBy="to_override")
*
*/
protected $comments;
}
In the Comment.php
I have ManyToOne
relation
class Comment
{
/**
* @ManyToOne(targetEntity="Article", inversedBy="comments")
*/
protected $article;
/**
* @ManyToOne(targetEntity="Page", inversedBy="comments")
*/
protected $page;
/**
* @ManyToOne(targetEntity="Page", inversedBy="comments")
*/
protected $question;
}
I want to use this trait in my entities Article.php
, Page.php
, Quesion.php
like this:
class Article
{
use CommentableTrait;
}
I need to override mappedBy
in CommenatableTrait
.
I've tried the solution from Doctrine - Override Field Association Mappings In Subclasses
It works with OneToOne
and ManyToMany
relations but I couldn't find a working example for bi-directional OneToMany - ManyToOne
relations. Is there a way to do it?
Upvotes: 1
Views: 1230
Reputation:
You can use trait
within a class and override relation there. For example:
class Article
{
use CommentableTrait;
/**
* @See CommentableTrait
* @OneToMany(targetEntity="Comment", mappeBy="article")
*
*/
$comments
}
Upvotes: 1