我有一个使用QueryBuilder从表中选择一些列的函数,并且我想向结果查询中添加自定义列。
像这样
SELECT u.id, "paid" as type FROM users as u WHERE u.deleted_at IS NOT NULL
这就是我所拥有的:
/**
* {@inheritdoc}
*/
public function getPaidOrderAnalytics(
Agents $agent,
ParamFetcher $paramFetcher,
$dateFrom,
$dateTo
)
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('
DISTINCT(o.id) as _id,
o.createdAt as order_created_at,
o.publicCost as public_cost,
o.orderStatus as order_status,
srv.services as service_name
')
->addSelect('
"paid" as type
')
->from('ArtelProfileBundle:Orders', 'o')
->leftJoin('o.services', 'srv')
->leftJoin('o.leadService', 'ls')
->leftJoin('ls.lead', 'l')
->andWhere('l.agent = :agent')
->setParameter(':agent', $agent)
->orderBy('o.' . $paramFetcher->get('sort_by'), $paramFetcher->get('sort_order'))
->setFirstResult($paramFetcher->get('count') * ($paramFetcher->get('page') - 1))
->setMaxResults($paramFetcher->get('count'));
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
有错误
[Syntax Error] line 0, col 270: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got '"'
如何在“查询”构建器中将自定义列添加到我的选择中?
尝试更改此:
->addSelect('
"paid" as type
')
和:
->addSelect('
\'paid\' as type
')
我成功转储了该值作为示例
var_dump($results[0]['type']);
希望这个帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句