簡體   English   中英

原則:與ID的多對多關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM