エンティティがあります。これは、とAuthor
を含むクラステーブル継承です。AuthorUser
AuthorGroup
/**
* Author
*
* @ORM\Table
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"user" = "AuthorUser", "group" = "AuthorGroup"})
*/
class Author {
// ...
}
AuthorUser
User
私の実体とAuthorGroup
私の実体に関連していGroup
ます。
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
指定する必要があります。私はこの振る舞いに従いましたが、役に立たないようです。それはさらに複雑になります。User
Group
author