2012-01-30 6 views
1

그런 간단한 것 같지만 그룹의 레코드 수를 반환하는 쿼리를 얻을 수 없습니다. 내 성명은 다음과 같습니다.Doctrine : groupby 문에서 레코드의 행 수를 반환하는 방법

public function getGroupCount($user_id) 
{ 
    $q = Doctrine_Query::create() 
     ->select('ss.*') 
     ->from('SalarySurvey ss') 
     ->where('ss.user_id=?', $user_id) 
     ->groupBy('created_at') 
     ->execute(); 
    return $q->rowCount(); 
}  

rowCount()는 위 쿼리에서 작동하지 않습니다.

foreach 문에서 사용되고 있음을 알면 도움이 될 수 있습니다.

답변

2

CappY가 제안했듯이 Doctrine 1.2에서는 내가 아는 한 불가능합니다. 해결 방법으로, 나는 테이블에 다른 필드를 추가하고 저장시 각 그룹에 대해 해당 필드를 동일하게 설정하여 각 그룹화에 대한 계산을 마침내 얻을 수있었습니다. 그런 다음 해당 필드를 가져오고 방금 쿼리를 변경하여 간단하게 처리했습니다.

$q->count(); 
0

Doctrine 1.2에서는 작동하지 않지만 php의 count 함수 나 SELECT COUNT()를 'cnt'로 사용할 수 없습니까?

반환 개수 ($ q);

+0

나는 제안하지 않은 것과 비슷한 시도를 성공으로 거뒀습니다. 그러나 나는 답변에 게시 할 내 문제를 해결할 수있었습니다. 하지만 당신은 옳습니다 ... 적어도 지금까지 내 경험이었습니다 ... 그 교리는 이것을 허용하지 않습니다. 그러므로,이 질문에 비틀 거린 사람들을 위해 답을 찾으십시오. – Patrick

관련 문제