Liczba wierszy w Doctrine 2

Próbuję pobrać komentarze z komentarza tabeli, który ma identyfikator, grę (klucz obcy) i datę.

Za każdym razem, gdy proszę o komentarze, chcę uzyskać 3 komentarze posortowane według daty dla określonej gry i chcę wiedzieć, czy jest więcej komentarzy do pokazania później. Do tego napisałem dwie funkcje, pierwsza zwraca trzy komentarze:

public function getRecentComments($offset,$id) {
    $dql = "SELECT c FROM Comment c 
        WHERE c.game = ?1
        ORDER BY c.date DESC";
    $query = $this->getEntityManager()->
        createQuery($dql)->
        setParameter(1, (int)$id)->    
        setMaxResults(3)->
        setFirstResult($offset);
    return $query->getResult();

A drugi zwraca liczbę komentarzy, które mogę uzyskać później. Powodem tej funkcji jest pokazanie przycisku „Więcej komentarzy” lub nie. To druga funkcja:

public function moreComments($offset,$id) {

    $dql = "SELECT COUNT(c.id) FROM Comment c
        WHERE c.game = ?1
        ORDER BY c.date DESC";
    $query = $this->getEntityManager()
        ->createQuery($dql)
        ->setParameter(1, (int)$idPartido)
        ->setFirstResult($offset+3)    
        ->setMaxResults(1)
        ->getSingleScalarResult();

    return $query;
}

Ale druga funkcja nie działa w przypadku następnego błędu:

Błąd krytyczny: nieprzechwycony wyjątek „Doctrine ORM NoResultException” z komunikatem „Nie znaleziono wyniku dla zapytania, chociaż oczekiwano co najmniej jednego wiersza.

Które myślę, że to z powodu użycia setFirstResult i count ().

Więc użyłem

public function moreComments($offset,$id) {

    $dql = "SELECT c FROM Comentario c
        WHERE c.partido = ?1
        ORDER BY c.fecha DESC";
    $query = $this->getEntityManager()
        ->createQuery($dql)
        ->setParameter(1, (int)$idPartido)
        ->setFirstResult($offset+3)    
        ->setMaxResults(1)
        ->getSingleScalarResult();

    return sizeof($query);
}

Co oczywiście jest źle napisane, ponieważ nie powinienem pobierać danych tylko dla liczby. Jak mogę poprawnie napisać drugą funkcję?

Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion