2011-11-14 2 views
0

의 난 다음 코드 조각이 있다고 가정하자Doctrine2에서 QueryBuilder 자리 표시자를 제거하는 방법은 무엇입니까?

 $qb = $this->em->createQueryBuilder(); 
     $qb->add('select', 'a') 
      ->add('from', 'Entities\Patientprofile a') 
      ->add('where', 'a.userid=?1') 
      ->setParameter(1, $patientId); 
     ; 
     $query = $qb->getQuery(); 
     $patientProfile = $query->getResult(3); 

교리는 바람직하지 않다 here을 언급 한 바와 같이 결과 개체의 모든 "U"접두사를 추가합니다.

결과에서 이러한 자리 표시자를 제거 할 수있는 고유 한 교리 방법/솔루션이 있습니까?

답변

1

코드에 나타나지 않지만 getScalarResult()를 사용하여 쿼리를 실행하고있는 것으로 추측됩니다. 제 경험상 Doctrine은 스칼라 수화를 사용하여 결과를 반환 할 때 별칭 접두사를 붙입니다 (here). 개체 수화 방법 중 하나를 사용하는 경우 접두사는 사라져야합니다. Doctrine의 객체 수화 메소드는 getResult(), getSingleResult() 및 getArrayResult()입니다.

어떤 수화 모드를 사용하고 있습니까? 위의 방법 중 하나로 전환하면 문제가 해결됩니까?

+0

방금 ​​q를 업데이트했습니다. 내 정확한 쿼리를 볼 수 있습니다.이 쿼리는 배열을 반환합니다. –

+0

나는 getResult (3)을 getArrayResult()로 바꿨다. 앞에서 언급했듯이 접두사는 응답하지 않았다. 감사합니다. –

관련 문제