【发布时间】:2018-01-29 19:52:03
【问题描述】:
我有一个 Symfony 3 项目。我正在向查询生成器发送一个不同长度的数组。查询生成器如下所示:
function findByQuery($sortBy) {
return $this->createQueryBuilder('d')
->leftJoin('d.cat', 'dc')
->leftJoin('d.dog', 'dd')
->leftJoin('d.rabbit', 'rr')
->getQuery()
->execute();
}
我想使用 $sortBy 参数对结果进行排序。但是问题是,有时 $sortBy(它是一个数组)有时只包含一个带有键和设置顺序的元素(例如 ASC 或 DESC),而其他时候将包含多个键。无论哪种情况,我都希望能够按所有元素对结果进行排序。有没有一种简单的方法可以做到这一点?
非常感谢,
【问题讨论】:
-
您可以在调用
getQuery()之前将QueryBuilder实例分配给一个变量,然后使用简单的foreach(),您可以根据需要多次调用addOrderBy()方法,并且最后返回类似$builder->getQuery()->execute()。 -
抱歉,我不完全理解如何使用 addOrderBy 方法做到这一点?
标签: php symfony doctrine-orm