【发布时间】:2015-08-25 16:41:34
【问题描述】:
我想使用 symfony 的查询构建器并在数组集合中的最后一项添加位置
$query = $em->getRepository('RlBookingsBundle:Booking')->createQueryBuilder('b')
->select('b, v, c, ca, q')
->leftJoin('b.vehicle', 'v')
->leftJoin('b.customer', 'c')
->leftJoin('c.address', 'ca')
->leftJoin('b.quote', 'q')
->leftJoin('b.history', 'h') //This is an array collection
->orderBy('b.edited', 'DESC')
;
我只想使用历史记录中的最新值,因为它是一个日志,但只有最近的条目有效
->where('h.status IN (:status)')
->setParameter('status', [7]);
将返回 h.status = 7 的所有结果,但我希望它只查询最近的结果。有没有办法做到这一点?
我在历史字段上尝试了 groupby,但这似乎与第一个条目中的数据分组,即使我向其中添加了 orderby。
【问题讨论】:
-
你有一个日期,你可以从中区分最近的记录吗?
-
是的,历史记录行都有日期,或者 id 与每个最新条目将是最高的。理想情况下,我想 leftJoin 一个子查询,但我不认为教义可以处理这个问题。或者直接加入历史实体的最新结果。
标签: php symfony doctrine-orm doctrine arraycollection