Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework2 无法获取ZF2分页_Zend Framework2 - Fatal编程技术网

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然后,考虑接受和投票这个答案!