La asociación ManyToOne se mapea a una entidad de herencia de tabla de clase en Doctrine 2
Yo tengo unAuthor
entidad, que es una herencia de tabla de clase que contiene unaAuthorUser
y unAuthorGroup
.
/**
* Author
*
* @ORM\Table
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"user" = "AuthorUser", "group" = "AuthorGroup"})
*/
class Author {
// ...
}
AuthorUser
se relaciona con miUser
entidad yAuthorGroup
para miGroup
entidad.
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;
}
No tengo idea de cómo invertir esto. De todos modos, el problema es que tengo que agregar este CTI a miArticle
campo de entidad ¿Cómo puedo relacionarme utilizando ManyToOne con este campo de entidad de artículo?
class Article
{
/**
* @var Author
*
* @ORM\ManyToOne(targetEntity="Author", inversedBy="?????????")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
protected $author;
}
No estoy seguro de cómo hacer esto lo más transparente posible. Cuando creo un nuevoArticle
, necesito proporcionar unaUser
oGroup
objetar alauthor
campo. Seguí este comportamiento, pero no parece ayudar. Se vuelve aún más complicado.