gpt4 book ai didi

mysql - Symfony2 和 Doctrine : Order entites by foreign attribute

转载 作者:可可西里 更新时间:2023-11-01 08:35:43 26 4
gpt4 key购买 nike

我想使用选择来获取带有 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 将实体对象还给我。我想到了两种可能的解决方案:

  1. 使用 QueryBuilder 创建一个INNER JOIN,或者
  2. 创建一个免费的 SQL 语句,与上面相同,并以某种方式告诉 Doctrine 用它的结果创建一个实体对象。

有什么提示吗?谢谢。

最佳答案

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

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

关于mysql - Symfony2 和 Doctrine : Order entites by foreign attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com