我正在做一个 Symfony2 项目,我决定使用 KNPPaginatorBundle 来构建一个简单的分页系统。所以我创建了一个 Product 实体,我想将分页器添加到 indexAction 操作(由 CRUD 命令生成)。
// Retrieving products.
$em = $this->getDoctrine()->getManager();
//$entities = $em->getRepository('LiveDataShopBundle:Product')->findAll();
$dql = "SELECT a FROM LiveDataShopBundle:Product a";
$entities = $em->createQuery($dql);
// Creating pagnination
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$entities,
$this->get('request')->query->get('page', 1),
20
);
它工作正常,但我想使用产品的存储库而不是直接在控制器中创建查询。我怎样才能做到这一点 ?实际上,直接将结果集合添加到分页对象中太慢了,因为它会加载所有产品然后对 ArrayCollection 进行分页。
提前致谢。
K4