[英]Doctrine: Many-To-Many Relationship with ID
在“ Doctrine 2多對多”關系中,可能沒有聯接表中的組合鍵 ,而是擁有ID列。
A_B
ID
A_ID
B_ID
當前的問題是,它按升序對插入的ID進行排序,但是我需要它們按照從表單中添加它們的順序。
謝謝
多對多關系並不是要有秩序的。 如果要訂購某些商品,則需要向聯接表中引入額外的數據,它不再是聯接表而是一個單獨的實體。 因此,為了排序關系,您必須定義“連接實體”並為兩個表設置多對一實現,如下所示:
Table A Table AB Table B
ID A_ID ID
B_ID
order
AB表與A和B具有多對一關系。
對的,這是可能的
Table A Table AB Table B
ID ID
A_ID ID
B_ID
order
在實體中,您應該定義:
/**
* @ORM\ManyToMany(targetEntity="\YourNameSpace\Model\Entities\B",fetch="EXTRA_LAZY")
* @ORM\JoinTable(
* name="AB",
* joinColumns={
* @ORM\JoinColumn(name="B_ID", referencedColumnName="A_ID")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="B_ID", referencedColumnName="ID")
* }
*)
*/
protected $B;
在B實體中:
/**
* @ORM\ManyToOne(targetEntity="\YourNameSpace\Model\Entities\A", inversedBy="AB", fetch="EXTRA_LAZY")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="A_ID", referencedColumnName="ID")
* })
*/
protected $A;
但是,如果您的主要問題只是排序,則可以將創建的字段添加到表中並對其進行排序。
->orderBy('AB.created', 'DESC')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.