设A,B,C为关联实体。我的目标是A->getBs()
返回由两个属性排序的B
集合:B.createdAt
和B.C.displayOrder
。
首先正常,第二个没有:我已经尝试了"c.displayOrder" = "asc"
,但这已经失败了(Unrecognized field: c.displayOrder
)。
有没有办法从另一个相关实体的财产订购?
我能想象的另一个选项是覆盖函数getBs()
,但我不知道如何在那里创建自定义DQL查询以满足我的特殊需求。我已经读过在实体中使用EntityManager是不好的做法。
A
/**
* @ORM\OneToMany(targetEntity="B", mappedBy="a")
* @ORM\OrderBy({"createdAt" = "asc", "c.displayOrder" = "asc"})
*/
-id
-getBs()
B
/**
* @ORM\ManyToOne(targetEntity="A")
* @ORM\JoinColumn(referencedColumnName="id")
*/
/**
* @ORM\ManyToOne(targetEntity="C")
* @ORM\JoinColumn(referencedColumnName="id")
*/
-id
-createdAt
C
-id
-description
-displayOrder
使用doctrine / orm v2.4.5,symfony-standard-edition 2.3.20
答案 0 :(得分:0)