ZF2 と Doctrine を使用してページネーションを実装しようとしています。
ここでやろうとしているのは、関連付けられたテーブルからデータを取得することです。「xyz」としましょう。
私のカテゴリテーブルは、独自のPKで1対多の自己参照を行っています。私のカテゴリーテーブルには次のフィールドがあります
- ID(PK)
- Created_at
- Category_id (自己参照 PK)
私の XYZ テーブルは、それが名前テーブルと呼ばれているとしましょう
- ID(PK)
- Category_id(外部キー)
- 名前
- 詳細
これは、データをフェッチするために私がやろうとしていることです
public function allSubcategories($id, $column, $order) {
$repository = $this->entityManager->getRepository('Category\Entity\Category');
$queryBuilder = $repository->createQueryBuilder('category');
$queryBuilder->distinct();
$queryBuilder->select('category');
$queryBuilder->join('Category\Entity\CategoryName', 'category_name', 'WITH', 'category.id = category_name.category');
$queryBuilder->orderBy("category.status");
$q = $queryBuilder->getDql();
return $query = $this->entityManager->createQuery($q);
}
そして、私のコントローラーでは、これが私がやっていることです
public function subcategoryAction() {
///////////////////////////InPut Params Given for the pagination
$category_id = (int) $this->params()->fromRoute('id', 0);
$page = (int) $this->params()->fromRoute('page', 0);
$column = $this->params()->fromQuery('column');
$order = $this->params()->fromQuery('order');
$categoryModel = $this->getServiceLocator()->get('Category');
$categoryModel->category = $category_id;
$perPage = 10;
$request = $this->getRequest();
if ($request->isGet()) {
$view = new ViewModel();
$query = $categoryModel->allSubcategories($category_id, $column, $order);
$paginator = new ORMPaginator($query);
$paginator = new \Zend\Paginator\Paginator(new
\Zend\Paginator\Adapter\ArrayAdapter(array($paginator)));
$paginator->setCurrentPageNumber($page);
$paginator->setItemCountPerPage(2);
}
return array('id' => $category_id, 'view' => $paginator);
}
現在、ページネーションを実装しても結果が得られません。何が欠けているのか教えてもらえますか?