Doctrine2 QueryBuilder 选择实体和关联实体的计数



我在使用ORM QueryBuilder时遇到了很大的问题。我需要做的是: 我需要获取order及其products计数和大量关联实体(与order相关联),但我认为它们在这里无关紧要。我还需要按该计数对结果进行排序。

谁能给我举个例子来说明如何做到这一点?如果可能的话,我想避免"内联"DQL。

您可以通过 Doctrine Query Builder 获取数据。

您应该离开加入Order的产品,然后按订单 ID 分组。您可以在 select 语句中使用COUNT(product.id),并使用别名 inorder by子句对订单进行排序。下面是来自Repository的小代码片段。

/**
* @return DoctrineORMQuery
*/
public function getHotelAndRoomType()
{
$qb = $this->createQueryBuilder('order')
->select('partial order.{id, orderId} as order, count(product.id) as total_products_in_order')
->leftJoin('AppBundle:Product', 'product', 'WITH', 'product.order = order.id')
->groupBy('order.id')
->orderBy('total_products_in_order', 'DESC')
;
return $qb->getQuery()->execute();
}

注意:代码未测试。

相关内容

  • 没有找到相关文章

最新更新