7
我正在嘗試使用ZF2和Doctrine來實現分頁。使用Doctrine和ZF2的分頁
我在這裏要做的是從關聯表中獲取數據可以說'xyz'。
在哪裏作爲我的分類表正在做自己的PK一對多的自我引用。 MY catgories表有以下精密組件
- ID(PK)
- Created_at
- CATEGORY_ID(自參照PK)
我的XYZ表讓說,它被稱爲名稱表有
- ID(PK)
- Category_id(FK)
- 名
- 詳細
這就是我要做的獲取數據
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);
}
現在我沒有得到結果與分頁執行可以一些指導我關於我失蹤?
我只是把它修飾成 $適配器=新DoctrineAdapter(新ORMPaginator($ categoryModel-> allSubcategories($ category_id,$ column,$ order),true)); $ paginator = new Paginator($ adapter); – 2013-02-25 14:50:22
和公共函數allSubcategories($ id,$ column,$ order){ $ repository = $ this-> entityManager-> getRepository('Category \ Entity \ Category'); $ queryBuilder = $ repository-> createQueryBuilder('category'); $ queryBuilder-> select('category'); $ queryBuilder-> join('Category \ Entity \ CategoryName','category_name','WITH','category.id = category_name.category'); $ queryBuilder-> orderBy(「category.status」); $ q = $ queryBuilder-> getDql(); $ query = $ this-> entityManager-> createQuery($ q); $ results = $ query-> getResult(); return $ results; } – 2013-02-25 14:51:06
現在我得到這個錯誤參數1傳遞給Doctrine \\ ORM \\ Tools \\ Pagination \\ Paginator :: cloneQuery()必須是Doctrine \\ ORM \\ Query的一個實例,給出的數組爲 如何克服這個 – 2013-02-25 14:52:02