Wykonujesz zapytanie, a następnie otrzymujesz wyniki. Gdy masz wyniki, masz numer rekordu wykonując count
na wyniki:
$results = $query->getResult();
$resultCount = count($results);
Jeśli dotyczy stronicowania, jak dostaję 25 rekordów z całości. Następnie masz dwie możliwości.
wykonywać kwerendy dwa razy, jeden raz, aby uzyskać całkowite wyniki, inny czas, aby odzyskać tylko 25 wyników przy użyciu metody setFirstResult
i setMaxResults
. Ta metoda umożliwia ustawienie przesunięcia i drugiej, setMaxResults
, liczby rekordów. Poniższy kod daje wyniki od 25 do 50, to druga strona, jeśli używasz 25 rekordów po stronie.
$query->setFirstResult(25);
$query->setMaxResults(25);
Można sprawdzić doktryna rozszerzenia Doctrine2 które mają wsparcie paginator. Te rozszerzenia zostały wykonane przez jednego z twórców Doctrine2. Możesz przejrzeć te here.
Mam nadzieję, że ta pomoc.
Pozdrawiam,
Matt
To jest złe rozwiązanie + nie działa w nowszej wersji Symfony2 - zamiast tego użyj odpowiedzi poniżej. – thorinkor