私は 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
);
正常に動作しますが、コントローラーで直接クエリを作成するのではなく、製品のリポジトリを使用したいと考えています。どうやってやるの ?実際、結果のコレクションを paginate オブジェクトに直接追加するのは遅すぎます。これは、すべての製品をロードしてから ArrayCollection をページ分割するためです。
前もって感謝します。
K4