私はsymphony 3アプリケーションのドクトリンリレーションを実装しようとしています。親クラスと子クラスのドクトリンリレーション
私は2つの異なるクラスを持っています。一つは、もう一つは、同じエンティティに関連していて、多対一の関係です。
ここに私のクラスがあります。
Country.php
class Country
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Groups({"exposed"})
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="Link", mappedBy="country")
*/
private $link;
/**
* @ORM\OneToMany(targetEntity="LinkChild", mappedBy="country")
*/
private $linkChild;
public function __construct()
{
$this->link = new ArrayCollection();
$this->linkChild = new ArrayCollection();
}
}
Link.php
/**
* Link
*
* @ORM\Table(name="link")
* @ORM\Entity(repositoryClass="Decathlon\AppCollaboratorBundle\Reposito\LinkRepository")
* @Vich\Uploadable
* @ORM\HasLifecycleCallbacks()
*/
class Link
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Serializer\Groups({"link_list", "link_info"})
* @Serializer\Expose()
*/
protected $id;
/**
* @var Country
*
* @ORM\ManyToOne(targetEntity="Country", inversedBy="link", cascade={"persist"})
* @JoinColumn(name="country_id", referencedColumnName="id")
*/
protected $country;
}
LinkChild.php
/**
* @ORM\Entity(repositoryClass="Decathlon\AppCollaboratorBundle\Repository\LinkChildRepository")
*/
class LinkChild extends Link
{
/**
* @var Country
*
* @ORM\ManyToOne(targetEntity="Country", inversedBy="linkChild", cascade={"persist"})
* @JoinColumn(name="country_id", referencedColumnName="id")
*/
protected $country;
}
私は、国へのリンクとLinkChild両方との関係が、ノーカントリーを作成する必要があります列がLinkChildテーブルに作成されます。
私は再帰的なクラスを使わないように言いましたので、LinkとLinkChildを作成する必要があります。
私が試していることを磨く方法がありますか?
ありがとうございます。