如何在查询生成器中将自定义列添加到我的 select?
How to add custom column to my select in Query builder?
我有一个函数 select 使用 QueryBuilder 从 table 中提取一些列,我想将自定义列添加到生成的查询中。
像这样
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 '"'
如何在查询生成器中向我的 select 添加自定义列?
这样试试:
$qb = $this->createQueryBuilder('e');
$qb->select('e')
->addSelect('e.paid as HIDDEN paid')
尝试改变这个:
->addSelect('
"paid" as type
')
与:
->addSelect('
\'paid\' as type
')
我成功转储值作为例子
var_dump($results[0]['type']);
希望对您有所帮助
我有一个函数 select 使用 QueryBuilder 从 table 中提取一些列,我想将自定义列添加到生成的查询中。
像这样
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 '"'
如何在查询生成器中向我的 select 添加自定义列?
这样试试:
$qb = $this->createQueryBuilder('e');
$qb->select('e')
->addSelect('e.paid as HIDDEN paid')
尝试改变这个:
->addSelect('
"paid" as type
')
与:
->addSelect('
\'paid\' as type
')
我成功转储值作为例子
var_dump($results[0]['type']);
希望对您有所帮助