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