我正在使用 Symfony2,并且对通过与 QueryBuilder 连接的关系来排序结果感到头疼。我想按 ID 选择一个包含已订购相关项目的组。这是代码:
$rs = $this
->createQueryBuilder('a')
->select('a', 'c', 'm')
->leftJoin('a.item', 'c', Expr\Join::WITH, 'c.active = 1')
->leftJoin('c.media', 'm')
->where('a.id = :group_id')
// ->orderBy('c.sortOrder', 'asc')
->setParameter('group_id', $group_id)
->getQuery()
->getOneOrNullResult();
这样我就得到了我想要的东西,但是没有订购物品。如果我取消注释 line ->orderBy('c.sortOrder', 'asc')
,我会得到空的结果集。试图在 PHPMyAdmin 中执行可运行的查询,并且两个(有排序和没有排序)查询都返回相同的结果,但一个是按应有的顺序排序的。
有没有办法让关系有序?