Zend framework2 无法获取ZF2分页
我已经在下面给出的控制器中编写了代码Zend framework2 无法获取ZF2分页,zend-framework2,Zend Framework2,我已经在下面给出的控制器中编写了代码 $iteratorAdapter = new \Zend\Paginator\Adapter\Iterator($this->getCategoryTable()->listCategoryData()); $paginatorDatas = new \Zend\Paginator\Paginator($iteratorAdapter); $paginatorDatas->setCurrentPageNumber($page)->s
$iteratorAdapter = new \Zend\Paginator\Adapter\Iterator($this->getCategoryTable()->listCategoryData());
$paginatorDatas = new \Zend\Paginator\Paginator($iteratorAdapter);
$paginatorDatas->setCurrentPageNumber($page)->setItemCountPerPage(5);
我呈现变量$paginatorDatas以查看文件
在相应的视图文件中,我编写了如下代码:
echo $this->paginationControl($this->paginatorDatas, 'Elastic', 'paginator.phtml');
在调用$this->paginationControl()函数之前,我已经通过foreach(){}
迭代了数组对象($paginatorDatas),以填充记录
但是上面的代码给出了以下错误
致命错误:未捕获异常“Zend\Db\Adapter\exception\RuntimeException”,在/var/www/cp/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/result.php:153堆栈跟踪:#0[内部函数]:Zend\Db\Adapter\Driver\Pdo\Result->rewind()#1/var/www/cp/module/Admin/view/Admin/category/ajax list.phtml(21):LimitIterator->rewind()#2/var/www/cp/vendor/zendframework/zendframework/library/Zend/view/Renderer/PhpRenderer.php(507):包括('/var/www/cp/mod…)#3/var/www/cp/vendor/vendor/zendframework/zendframework/zendframework/zendwork/zer/zendframework/library/Zend/view/php:Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))#4/var/www/cp/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php(102):Zend\View\View->render(Object(Object(Zend\View\Model\View\ViewModel\ViewModel))#5[内部函数]:Zend\Mvc\View\Http\DefaultRenderingStrategy->->(Object(Zend\Mvc\Mvc\Mvc\MvcEvent))#6/var/www/cp/in/var/www/cp/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Result.php,第153行
请帮助我……用查询结果填充数组,您可以使用
\Zend\Paginator\Adapter\ArrayAdapter
而不是\Zend\Paginator\Adapter\Iterator
方法1
$resultSet = $this->getCategoryTable()->listCategoryData();
$resultSet->buffer();
$resultSet->next();
$iteratorAdapter = new \Zend\Paginator\Adapter\Iterator($resultSet);
$paginatorDatas = new \Zend\Paginator\Paginator($iteratorAdapter);
$paginatorDatas->setCurrentPageNumber($page)->setItemCountPerPage(5);
来自Samsonasik的教程
方法2
$resultSet = $this->getCategoryTable()->listCategoryData();
$resultSet = iterator_to_array($resultSet);
$adapter = new \Zend\Paginator\Adapter\ArrayAdapter($resultSet);
$paginatorDatas = new \Zend\Paginator\Paginator($adapter);
$paginatorDatas->setCurrentPageNumber($page)->setItemCountPerPage(5);
我尝试了这个方法,但仍然得到以下错误。。。可捕获的致命错误:传递给Zend\Paginator\Adapter\ArrayAdapter:的参数1::\uu construct()必须是数组,给定对象,在第74行的/var/www/cp/module/Admin/src/Admin/Controller/CategoryController.php中调用,在第33行的/var/www/cp/vendor/zendframework/zendframework/library/Zend/Paginator/Adapter/ArrayAdapter.php中定义,这就是为什么我说用查询结果填充数组,而不是直接使用它的原因@EKL然后,考虑接受和投票这个答案!