I'm currently using ezSQL, which I believe to be a great SQL wrapper. I've been tasked with adding in pagination that we can just drop in. Zend has one, which seems like it should work, as it's loosely coupled with the rest of Zend. I'm returning an array with ezSQL, ala:
$results = $db->get_results("SELECT * FROM table", ARRAY_A);
and then shifting this in to the paginator:
$paginator = Zend_Paginator::factory($results);
If I var_dump($paginator)
, I see the values listed from the query. However, if I echo $paginator->pageCount)
, I get NULL
. What's the deal?
Unfortunately, switching from ezSQL to Zend_DB is essentially impossible for our group, so that's out of the question.
EDIT: Output from print_r($paginator)
:
Zend_Paginator Object
(
[_cacheEnabled:protected] => 1
[_adapter:protected] => Zend_Paginator_Adapter_Array Object
(
[_array:protected] => Array
(
[0] => Array
(
[first_name] => Doug
[last_name] => Lawrence
[avatar] => Doug_Lawrence.png
[updated_by] => 14306
[id] => 413
[title] =>
[synopsis] =>
[create_date] => 2009-10-29 12:57:52
[publish_date] => 10/29/09
)
[1] => Array
(
[first_name] => Jason
[last_name] => Lewis
[avatar] => Jason.Lewis.jpg
[updated_by] => 13547
[id] => 411
[title] =>
[synopsis] =>
[create_date] => 2009-10-25 09:19:48
[publish_date] => 10/25/09
)
[2] => Array
(
[first_name] => David
[last_name] => Bowman
[avatar] => David_Bowman.png
[updated_by] => 13564
[id] => 409
[title] =>
[synopsis] =>
[create_date] => 2009-10-24 15:13:13
[publish_date] => 10/24/09
)
[3] => Array
(
[first_name] => David
[last_name] => Bowman
[avatar] => David_Bowman.png
[updated_by] => 13564
[id] => 410
[title] =>
[synopsis] =>
[create_date] => 2009-10-24 15:15:48
[publish_date] => 10/24/09
)
[4] => Array
(
[first_name] => Greg
[last_name] => Morris
[avatar] => GKMorris.png
[updated_by] => 13555
[id] => 408
[title] =>
[synopsis] =>
[create_date] => 2009-10-24 10:21:14
[publish_date] => 10/24/09
)
[5] => Array
(
[first_name] => Thom
[last_name] => Rainer
[avatar] => Thom_Rainer.jpg
[updated_by] => 13560
[id] => 405
[title] =>
[synopsis] =>
[create_date] => 2009-10-23 06:53:43
[publish_date] => 10/23/09
)
[6] => Array
(
[first_name] => David
[last_name] => Bowman
[avatar] => David_Bowman.png
[updated_by] => 13564
[id] => 406
[title] =>
[synopsis] =>
[create_date] => 2009-10-23 16:20:33
[publish_date] => 10/23/09
)
[7] => Array
(
[first_name] => Tom
[last_name] => Harper
[avatar] => 1225910432_63
[updated_by] => 10843
[id] => 402
[title] =>
[synopsis] =>
[create_date] => 2009-10-22 11:17:16
[publish_date] => 10/22/09
)
[8] => Array
(
[first_name] => Jerome
[last_name] => Daley
[avatar] => Jerome_Daley.png
[updated_by] => 13554
[id] => 403
[title] =>
[synopsis] =>
[create_date] => 2009-10-22 14:06:31
[publish_date] => 10/22/09
)
[9] => Array
(
[first_name] => Mark
[last_name] => Howell
[avatar] => Mark_Best.png
[updated_by] => 13561
[id] => 404
[title] =>
[synopsis] =>
[create_date] => 2009-10-22 21:44:51
[publish_date] => 10/22/09
)
[10] => Array
(
[first_name] => Margaret
[last_name] => Marcuson
[avatar] => Marcuson.png
[updated_by] => 14398
[id] => 401
[title] =>
[synopsis] =>
[create_date] => 2009-10-21 18:21:55
[publish_date] => 10/21/09
)
[11] => Array
(
[first_name] => Barry
[last_name] => Winders
[avatar] => Barry_Winders.png
[updated_by] => 13552
[id] => 400
[title] =>
[synopsis] =>
[create_date] => 2009-10-20 20:08:36
[publish_date] => 10/20/09
)
[12] => Array
(
[first_name] => Stephen
[last_name] => Gray
[avatar] => Stephen_Gray.png
[updated_by] => 13556
[id] => 399
[title] =>
[synopsis] =>
[create_date] => 2009-10-20 09:59:16
[publish_date] => 10/20/09
)
[13] => Array
(
[first_name] => Alan
[last_name] => Chandler
[avatar] => Alan_Chandler.png
[updated_by] => 13549
[id] => 398
[title] =>
[synopsis] =>
[create_date] => 2009-10-19 12:03:07
[publish_date] => 10/19/09
)
[14] => Array
(
[first_name] => Mark
[last_name] => Howell
[avatar] => Mark_Best.png
[updated_by] => 13561
[id] => 396
[title] =>
[synopsis] =>
[create_date] => 2009-10-17 12:30:16
[publish_date] => 10/17/09
)
)
[_count:protected] => 15
)
[_currentItemCount:protected] =>
[_currentItems:protected] =>
[_currentPageNumber:protected] => 1
[_filter:protected] =>
[_itemCountPerPage:protected] => 5
[_pageCount:protected] => 3
[_pageRange:protected] => 10
[_pages:protected] =>
[_view:protected] =>
)
As Zak wrote, you are missing
$paginator->setItemCountPerPage(10);
$paginator->setCurrentPageNumber(1);
that you can create a view script to render the paginator controls and the items in the paginator.
Than you have to call
$paginator->getPages()->pageCount
if you are not using Zend_View and it's paginatorControl view helper.
来源:https://stackoverflow.com/questions/1663820/zend-pagination-with-array