關係是有可能在學說2許多一對多關係不有從連接表,而是一個複合鍵有ID列。學說:許多一對多與ID
A_B
ID
A_ID
B_ID
當前問題是,它下令由升序插入IDS,但我需要他們的順序,他們已經從形式加入。
謝謝
關係是有可能在學說2許多一對多關係不有從連接表,而是一個複合鍵有ID列。學說:許多一對多與ID
A_B
ID
A_ID
B_ID
當前問題是,它下令由升序插入IDS,但我需要他們的順序,他們已經從形式加入。
謝謝
多對多關係並不意味着排序。如果你想訂購一些你正在向連接表引入額外數據的東西,它不再是一個連接表,而是一個單獨的實體。因此,爲了訂購關係,你必須定義「加入實體」,並設置多到一個realations像兩個表:
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;
一ND 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')
在某些時候,你應該嘗試一下你的建議。我懷疑你會意識到,許多關係學說不能有其他屬性。向下投票相應。 – Cerad
我在我的項目中使用它,它工作得很好。 –
當人們想要通過主鍵進行訂購時,總是有點可疑。無論如何,如果默認行爲不適合,則創建您自己的連接實體並與其他兩個實體建立多對一的關係。但坦率地說,如果一個實體的排序很重要,那麼添加你自己的排序列。 – Cerad
我建議爲此添加一個自動時間戳列,並使用時間戳對結果進行排序。 – Wilt