교리

2012-05-21 3 views
0

내가 NativeQuery로부터 SQL을 생성하고이 결과 SQL 인 카운트 (ID) 2.0 NativeQuery ResultSetMapping :으로부터, created_at교리

SELECT COUNT (ID) TOT AS WHERE '20120501000000'BETWEEN created_at AND '20120521235959'GROUP BY YEAR (created_at), MONTH (created_at), DAY (created_at);

$rsm = new \Doctrine\ORM\Query\ResultSetMapping; 
$rsm->addEntityResult('Entity\Property', 'p'); 
$rsm->addFieldResult('p','count(id)','tot'); // <-- this don't work 
$rsm->addFieldResult('p','created_at','created_at'); 

결과는 위의 쿼리는 MySQL을 직접 실행하는 것은 괜찮습니다 :

이 내 ResultSetMapping입니다

tot created_at 
11 2012-05-02 11:23:25 
11 2012-05-08 14:56:40 
152 2012-05-16 14:43:46 
5 2012-05-17 16:26:31 
29 2012-05-18 14:55:33 

그러나 어린 아이의 별명이 존재하지 않는 결과 배열!

질문은 : 내가 수 (ID) 제대로 ResultSetMapping 설정 방법

?

답변

0

나는 시도 할 것이다 :

$rsm->addFieldResult('p', 'tot', 'tot'); 

당신의 열로 COUNT(id) AS tot의 이름을 변경하고있다. tot 별칭을 제거하면 원래 코드를 사용할 수 있습니다.