Próbuję zaimplementować paginację za pomocą ZF2 i Doctrine.Paginacja za pomocą Doctrine i ZF2
Co próbuję tutaj zrobić, to pobrać dane z powiązanej tabeli, powiedzmy "xyz".
Gdzie mój stolik kategorii robi jedno do wielu samodzielnych odniesień na własnym PK. MY catgories stoły posiada następujące feilds
- ID (PK)
- created_at
- category_id (self odsyłania PK)
Moja tabela XYZ powiedzmy to nazywa Nazwa tabela ma
- ID (PK)
- ID_id (FK)
- nazwa
- Szczegóły
To, co próbuję zrobić, aby pobrać dane
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);
}
iw moim kontrolera jest to, co robię
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);
}
teraz nie dostaję wyników z zaimplementowaną paginacją, czy niektórzy 1 prowadzą mnie po tym, czego mi brakuje?
Właśnie zmodyfikowano go $ adapter = new DoctrineAdapter (nowa ORMPaginator ($ categoryModel-> allSubcategories ($ category_id, $ column, $ order), true)); $ paginator = new Paginator (adapter $); –
i funkcja publiczna allSubcategories ($ id, $ column, $ order) { $ repository = $ this-> entityManager-> getRepository ('Category \ Entity \ Category'); $ queryBuilder = $ repository-> createQueryBuilder ("category"); $ queryBuilder-> select ("kategoria"); $ queryBuilder-> join ("Kategoria \ Jednostka \ NazwaKategorii", "nazwa kategorii", "Z", "category.id = nazwa kategorii.kategoria"); $ queryBuilder-> orderBy ("category.status"); $ q = $ queryBuilder-> getDql(); $ query = $ this-> entityManager-> createQuery ($ q); $ results = $ query-> getResult(); return $ results; } –
Teraz otrzymuję ten błąd Argument 1 przekazany do Doctrine \\ ORM \\ Narzędzia \\ Pagination \\ Paginator :: cloneQuery() musi być instancją Doctrine \\ ORM \\ Zapytanie, tablica podana jak pokonać ten –