tôi đang cố triển khai Phân trang bằng cách sử dụng ZF2 và Doctrine.Phân trang bằng cách sử dụng Doctrine và ZF2
Điều tôi đang cố gắng làm ở đây là tìm nạp dữ liệu từ bảng được liên kết cho phép nói 'xyz'.
Trong trường hợp bảng danh mục của tôi đang thực hiện một đến nhiều lần tự tham chiếu trên PK của chính nó. bảng catgories MY đã feilds
- ID sau (PK)
- created_at
- category_id (tự tham khảo PK)
bảng XYZ của tôi cho phép nói nó được gọi là bảng danh có
- ID (PK)
- Category_id (FK)
- tên
- chi tiết
Đây là những gì tôi đang cố gắng làm để lấy dữ liệu
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);
}
Và trong điều khiển của tôi đây là những gì tôi đang làm
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);
}
Bây giờ tôi không nhận được kết quả với pagination thực hiện có thể một số 1 hướng dẫn tôi về những gì tôi đang mất tích?
tôi chỉ cần sửa đổi nó để $ adaptor = new DoctrineAdapter (ORMPaginator mới ($ categoryModel-> allSubcategories ($ category_id, $ column, $ order), true)); $ paginator = new Paginator ($ adapter); –
và allSubcategories chức năng công cộng ($ id, $ column, $ order) { $ repository = $ this-> entityManager-> getRepository ('Danh mục \ Pháp nhân \ Danh mục'); $ queryBuilder = $ repository-> createQueryBuilder ('danh mục'); $ 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(); trả lại kết quả $; } –
Bây giờ tôi nhận được lỗi này Đối số 1 được chuyển đến Doctrine \\ ORM \\ Công cụ \\ Pagination \\ Paginator :: cloneQuery() phải là một cá thể của Doctrine \\ ORM \\ Query, mảng được đưa ra cách khắc phục này –