如何在 select 中更改学说查询生成器表达式的 selected 名称
How to change the selected name of a doctrine querybuilder expression inside of a select
我正在尝试更改来自以下原则查询的返回数组:
['city' => 'Warsaw', '1' => '2']
至:
['city' => 'Warsaw', 'count' => '2']
我的查询如下所示:
$queryBuilder = $this->createQueryBuilder('geo');
$queryBuilder->select([
'geo.city',
$queryBuilder->expr()->countDistinct('geo.id')
]);
$queryBuilder->groupBy('geo.city');
$result = $queryBuilder->getQuery()->getResult();
不确定如何将 AS count
正确写入此子表达式。
Expr class 只不过是一组编写表达式的助手。没有什么能阻止您将它与字符串组合:
// $qb your query builder
$qb->addSelect($qb->expr()->countDistinct('geo.id') . ' AS geo_count');
如果你不喜欢混合使用 expr 和字符串,你甚至可以直接编写 DQL:
$qb->addSelect('COUNT(DISTINCT geo.id) AS geo_count');
注意:我使用 geo_count
作为别名,因为你不能使用 count
因为它将被 DQL 解析器解释为 COUNT
函数.
我正在尝试更改来自以下原则查询的返回数组:
['city' => 'Warsaw', '1' => '2']
至:
['city' => 'Warsaw', 'count' => '2']
我的查询如下所示:
$queryBuilder = $this->createQueryBuilder('geo');
$queryBuilder->select([
'geo.city',
$queryBuilder->expr()->countDistinct('geo.id')
]);
$queryBuilder->groupBy('geo.city');
$result = $queryBuilder->getQuery()->getResult();
不确定如何将 AS count
正确写入此子表达式。
Expr class 只不过是一组编写表达式的助手。没有什么能阻止您将它与字符串组合:
// $qb your query builder
$qb->addSelect($qb->expr()->countDistinct('geo.id') . ' AS geo_count');
如果你不喜欢混合使用 expr 和字符串,你甚至可以直接编写 DQL:
$qb->addSelect('COUNT(DISTINCT geo.id) AS geo_count');
注意:我使用 geo_count
作为别名,因为你不能使用 count
因为它将被 DQL 解析器解释为 COUNT
函数.