我想使用一个选择来获取带有 Doctrines QueryBuilder 的实体数组。但我需要一个ORDER BY
使用外部属性(与外键相关的表中的属性)。我想直观地写的是这样的:
$repo = $this->getDoctrine()->getRepository('MyBundle:relation_table');
$query = $repo->createQueryBuilder('r')
->orderBy('r.fevent.date', 'DESC')
->getQuery();
毫不奇怪,这不起作用。在 SQL 中,我SELECT
看起来像这样:
SELECT r.* FROM relation_table AS r
INNER JOIN events AS e
ON e.IDevent = r.Fevent
ORDER BY e.date
但我也需要 Doctrine 把实体对象还给我。我想到了两种可能的解决方案:
- 使用 QueryBuilder 创建一个
INNER JOIN
, 或 - 创建一个与上面相同的自由 SQL 语句,并以某种方式告诉 Doctrine 创建一个带有其结果的实体对象。
有什么提示吗?谢谢。