,這與實體B
和C
通過可選多對一的關係連接主義XOR兩個關係 - 這將是確保只有那些關係之一在使用的最佳方法時間(XOR)?給出一個實體<code>A</code>實體
我想要實現的是相當不錯在下圖所示(基數顯示方式有所不同):
當然,我可以確保引用一個庫下有效代碼或其他地方,但也許有更合適的方式來使用Doctrine映射功能來做到這一點?
一個
/**
* @ORM\Table(name="A")
* @ORM\Entity(repositoryClass="Test\AppBundle\Repository\ARepository")
*/
class A
{
/**
* @var
* @ORM\ManyToOne(targetEntity="B", inversedBy="as", cascade={"all"})
*/
private $b = null;
/**
* @var null
* @ORM\ManyToOne(targetEntity="C", inversedBy="as", cascade={"all"}))
*/
private $c = null;
}
乙
/**
* @ORM\Table(name="B")
* @ORM\Entity(repositoryClass="Test\AppBundle\Repository\BRepository")
*/
class B
{
/**
* @var
* @ORM\OneToMany(targetEntity="A", mappedBy="b", cascade={"all"})
*/
private $as = null;
}
Ç
/**
* @ORM\Table(name="C")
* @ORM\Entity(repositoryClass="Test\AppBundle\Repository\CRepository")
*/
class C
{
/**
* @var
* @ORM\OneToMany(targetEntity="A", mappedBy="c", cascade={"all"})
*/
private $as = null;
}
謝謝,我想我會用生命週期回調,因爲基於setters的方法確實更容易出錯(比如設置一件事,然後另一件事 - 並想知道爲什麼最終會出現錯誤的設置) –