2009年6月1日星期一

Zend_Paginator 空适配器 bug

Zend_Paginator_Adapter_Null 可以让你不使用 Zend_Paginator 来管理数据而仍然能够使用 分页控制。但zf 1.6-1.8.2 存在最后一页数据不对的情况。

Test code:

$paginator = Zend_Paginator::factory(2);
$paginator->setCurrentPageNumber(1);
$paginator->setItemCountPerPage(5);

$pages = $paginator->getPages();
var_dump($pages);


期望结果:
["currentItemCount"]=>2
["lastItemNumber"]=>2
实际结果:
["currentItemCount"]=>5
["lastItemNumber"]=>5

修正方法:
public function getItems($offset, $itemCountPerPage)
{
if ($this->_count <= $offset) return array();
$remainItemCount = $this->_count - $offset;
$currentItemCount = $remainItemCount > $itemCountPerPage ? $itemCountPerPage : $remainItemCount;
return array_fill(0, $currentItemCount, null);
}

没有评论: