2012-01-11 25 views
6

Tôi có một đối tượng zend paginator, tôi muốn lấy phần tử đầu tiên trong trình tạo trang này.Zend Paginator - Làm thế nào để có được yếu tố đầu tiên trong paginator?

Tôi đã thử $paginator->getItem(0) nhưng nó trả về thông báo: Message: Cannot seek to 0 which is below the offset 2. Và $ paginator-> count() là 19.

tôi có thể đạt được điều này bằng cách sử dụng foreach:

foreach ($paginator as $item) 
{ 
    $entry = $item; 
} 

Làm thế nào tôi có thể nhận được điều này bằng cách không sử dụng foreach?

Trả lời

5

này sẽ cung cấp cho bạn mục đầu tiên mà không sử dụng foreach:

$first = current($paginator->getItemsByPage(1)); // Get the first item 
$firstCurrent = current($paginator->getCurrentItems()); // Get the first item of the current pages 
+0

cho tôi xin lỗi, nhưng tôi sill không biết làm thế nào để sử dụng đầu tiên mục theo cách đó? – hungneox

+0

'$ first' và' $ firstCurrent' phải có cùng giá trị với '$ item' sẽ có trong foreach. Nếu biến '$ entry' từ foreach của bạn là giá trị bạn đang cố gắng nhận, đoạn trích tôi đã đăng cũng nên thực hiện thủ thuật. – Ilians

+0

dind't work dude :( – hungneox

0

này sẽ đếm số lượng các trang phụ trong rowset:

$paginator->count(); 

này sẽ đếm tổng số các mặt hàng trong rowset:

$paginator->getTotalItemCount(); 

Nếu bạn có nhiều hơn 1 trang phụ, có thể bạn cần sử dụng thông số thứ hai trong getItem(), đó là một số trang phụ?

$paginator->getItem(1, 1); 

BTW: getItem() không zero based, yếu tố đầu tiên trong quá rowset là getItem(1).

Trong tình huống tương tự của tôi, tôi có 1 trang phụ, và sử dụng $paginator->getItem(1) cho tôi kết quả đúng

0

Nó phải là

$paginator->getCurrentItems()->current(); 
Các vấn đề liên quan