我想使用一个select来获取带有doctrines querybuilder的实体数组。但我需要一个使用foreign属性(与外键相关的表中的属性)的ORDER BY。我想凭直觉写的东西是这样的:

$repo = $this->getDoctrine()->getRepository('MyBundle:relation_table');

$query = $repo->createQueryBuilder('r')
 ->orderBy('r.fevent.date', 'DESC')
 ->getQuery();

毫不奇怪,这是行不通的。在sql中,mySELECT如下所示:
SELECT r.* FROM relation_table AS r
INNER JOIN events AS e
    ON e.IDevent = r.Fevent
ORDER BY e.date

但我也需要教义把实体对象还给我。我想到了两种可能的解决方案:
使用querybuilder创建INNER JOIN,或
创建一个自由的sql语句,如上所述,并告诉doctrine以某种方式创建一个实体对象及其结果。
有什么线索吗?谢谢。

最佳答案

您需要加入要订购的实体:

$query = $repo->createQueryBuilder('r')
    ->join('r.fevent', 'f')
    ->orderBy('f.date', 'DESC')
    ->getQuery()
;

07-24 19:15
查看更多