Ich habe eine Abfrage, die nach allen Elementen sucht und sie mit einem Paginator anzeigt. Und ich habe einen Controller, wo ich KnpPaginator funktioniert.KnpPaginator nur 50 Ergebnisse von 300 Elementen pro Seite laden
Wenn ich meine Seiten lade, werden alle 300 Elemente geladen und danach in 10 für jede Seite geschnitten.
Wie kann ich tatsächlich nur 50 von 50 laden, ohne alle zu laden und sie in meiner Paginierung in Ordnung zu haben?
Mein Controller
private function resultsAction(User $user, $type, $archive, Request $request)
{
$em = $this->getDoctrine()->getManager();
// $results = $em->getRepository("STUserBundle:Operation")->setQueryByTypeAndPro($type, $user, $archive);
$dql = "SELECT opn FROM STuserBundle:Operation opn";
$query = $em->createQuery($dql);
/**
* @var $paginator \Knp\Component\Pager\Paginator
*/
$paginator = $this->get('knp_paginator');
$results = $paginator->paginate(
$query,
$request->query->getInt('page',1),
$request->query->getInt('limit',50)
);
return array("results" => $results, "archive" => $archive);
}
Die Abfrage
public function findByTypeAndPro($type, User $user, $archive)
{
return $this->createQueryBuilder("opn")
->andWhere("opn.type = :type")
->setParameter("type", $type)
->andWhere("opn.resellerId = :reseller")
->setParameter("reseller", $user->getId())
->andWhere("opn.archive = :archive")
->setParameter('archive', $archive)
->orderBy("opn.dateCreation", "DESC")
->getQuery()
->getResult()
;
}
So kann ich vielleicht eine neue Abfrage für das schaffen?
Hallo, danke für die Klarstellung, ich sehe es jetzt besser :) Wie kann ich nach dem KNP damit umgehen? in der Steuerung? –
Nichts anderes benötigt. Dir geht es gut. Probiere es einfach aus. – Jeet
ok werde es versuchen, danke, werde Sie wissen lassen, ob es funktioniert –