php - 如何将自定义列添加到查询生成器中的选择?

标签 php sql symfony doctrine-orm query-builder

我有一个函数,使用 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']);

希望这有帮助

关于php - 如何将自定义列添加到查询生成器中的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327653/

相关文章:

java - 从 Spring jdbc 获取 java.sql.connection : getJdbcTemplate()

python - tempfile.TemporaryFile() 在分配给变量后不适用于 sqlite3

symfony - 如何使用 symfony2 中的多个实体字段创建唯一表单

php - 订单日期查询,语法错误

php - PDO lastInsertId 问题,php

mysql - mysql触发器语法错误

php - 显示来自数据库的数据——包括图像

php - 从服务内部调用服务?

php - 计算 MySQL/PHP 中的重叠持续时间

php - 如何将表单输入值传递给php函数