【发布时间】:2014-10-04 23:22:58
【问题描述】:
设 A、B、C 为关联实体。我的目标是让A->getBs() 返回由两个属性排序的B 集合:B.createdAt 和B.C.displayOrder。
第一个工作正常,第二个不行:我试过"c.displayOrder" = "asc",但没有成功(Unrecognized field: c.displayOrder)。
有没有办法从另一个相关实体中按属性排序?
我可以想象的另一个选项是覆盖函数getBs(),但我不知道如何在其中创建自定义 DQL 查询以满足我的特殊需要。我读过在 Entity 中使用 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
使用学说/orm v2.4.5,symfony-standard-edition 2.3.20
【问题讨论】:
标签: symfony doctrine-orm