Я работаю с Zend 1 (1.12) и использую класс Zend_Paginator для отображения результатов запроса на веб-странице. Однако существует большое количество записей (более миллиона), и на самом деле в большинстве случаев им понадобится или захочется выполнить поиск только по 1000 или около того самых последних записей.
Проблема в том, что у меня уже есть часть веб-страницы, устанавливающая значение «на страницу», что по своей сути создает ограничение (и смещение, если они больше не находятся на «странице 1» поиска.)
По сути, я спрашиваю, есть ли способ сказать Zend_Pagintor «извлекать только первые 1000 записей, а затем разбивать их на страницы в зависимости от выбора пользователя для каждой страницы»?
Я попытался передать параметр limit в интерфейс, который я использую, но Zend_Paginator, кажется, игнорирует это, извлекает все результаты, а затем разбивает их на страницы.
function getRecords($currentPage)
{
$select = "select * from table where user_id = 1 limit 1000";
/* $select is actually a Zend_Db_Table_Select object, not a string. */
$paginator = new Zend_Paginator::factory($select);
$paginator->setItemCountPerPage(25);
$paginator->setCurrentPageNumber($currentPage);
return $paginator;
}
($select, очевидно, является заполнителем.)