2016-09-05 2 views
1

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 '"' 

어떻게 쿼리 빌더에서 내 선택에 사용자 지정 열을 추가 할 필요가?

+0

은 쿼리 작성기에서 사용되는 엔티티 중 어느 항목에 대해서도 '지불'입니까? –

+0

dql에서'distinct'를 사용할 수 있습니까? –

답변

1

이 변경 시도 :

 ->addSelect(' 
     "paid" as type 

    ') 

에 : 나는 성공적으로 예를 들어 값을 덤프

 ->addSelect(' 
     \'paid\' as type 

    ') 

var_dump($results[0]['type']); 

희망 도움말

-1

는 다음과 같이하십시오 :

$qb = $this->createQueryBuilder('e'); 
$qb->select('e') 
    ->addSelect('e.paid as HIDDEN paid') 
관련 문제