Zend_Paginator和缓存。如何读取已发送到缓存的数据

时间:2010-01-28 06:38:28

标签: zend-framework zend-paginator zend-cache

我将数据注册到缓存中,我看到以下内容:

zend cache --- Zend_Paginator_1_42242d5fa3c4e4b7758810c276163e8a

但我无法阅读。

$request = $this->getRequest();
 $q = new Model();
 $paginator = Zend_Paginator::factory($q->fetchAll());
 $paginator->setCurrentPageNumber($request->getParam('p')); 
 $paginator->setItemCountPerPage(40);
 $this->view->q = $paginator;

 $fO = array('lifetime' => 3600, 'automatic_serialization' => true);
 $bO = array('cache_dir'=> APPLICATION_PATH . '/cache/');
 $cache = Zend_cache::factory('Core', 'File', $fO, $bO);
 Zend_Paginator::setCache($cache);

1 个答案:

答案 0 :(得分:0)

检查数据库分析器是否已启用。似乎DB profiler与 Zend_Paginator_Adapter_DbTableSelect 之间存在冲突。

我还创建了一个新的Paginator类,扩展了 Zend_Paginator ,我修改了 getItemsByPage 函数。

$offset = ($pageNumber - 1) * $this->getItemCountPerPage();
$items = $this->_adapter->getItems($offset, $this->getItemCountPerPage());

这两行代码应该在$pageNumber = $this->normalizePageNumber($pageNumber)之后的开头添加。