2016-08-07 1 views
1

사용자 경보가있는 테이블이 있습니다.이 경보를 작성한 사용자가 그룹화 한 모든 경보의 목록을 얻고 싶습니다.Doctrine "group by"가 기존의 모든 개체를 반환하지 않습니다.

$qb = $this->em->getRepository('AppBundle:Alarm')->createQueryBuilder('a')->groupBy('a.userId'); 
$result = $qb->getQuery()->getResult(); 

문제는 내가 기존의 모든 알람 대신 사용자 당 하나의 알람 만 얻는 것입니다.

그룹을 제거하면 모든 알람이 울립니다.

사용자별로 모든 알람을 그룹화 할 수있는 방법이 있습니까? 나는 배열을 얻고 배열 할 것으로 예상했다.

답변

1

이것은 groupBy 절이 작동해야하는 방식으로 작동합니다. user 각각에 대해 첫 번째 Alarm 항목을 선택합니다.

단일 사용자에 대해 모두 Alarm을 사용하려면 group_concat과 함께 작동해야하며 다시 Doctrine과 함께 제공되지 않습니다. 사용자 정의 DQL 기능을 등록해야합니다. Check here

관련 문제