Я изучаю Zend Framework. У меня был Zend_Paginator, работающий с адаптером массива, но у меня возникли проблемы с использованием статического метода Zend_Paginator :: factory. Проблема заключается в том, что контрольные ссылки пагинации отправляют меня на правильный URL-адрес, но результаты исчезают, когда я нажимаю кнопку Далее или страницы 2, 3 и т. Д.
У меня есть две таблицы из базы данных: таблица файлов и таблица origination_office. Таблица файлов содержит имена клиентов, адрес и т. Д., А в офисе отправителя хранятся названия офисов (например, Тампа, Сарасота и т. Д.). Каждый файл связан с исходным офисом.
Мой контроллер:
public function searchAction()
{
$searchForm = new Application_Form_SearchForm();
if ($this->_request->getQuery()) {
if ($searchForm->isValid($this->_request->getParams())) {
$officeName = $this->_request->getParam('officeName');
$page = $this->_request->getParam('page');
}
$fileTable = new Application_Model_DbTable_File();
$this->view->paginator = $fileTable->getFilesByOfficeName($officeName, $page);
}
$this->view->searchForm = $searchForm;
}
Вот метод getFilesByOfficeName ():
public function getFilesByOfficeName($officeName = null, $page = 1, $count = 12, $range = 15, $scrolling = 'Sliding')
{
if (is_null($officeName)) {
$query = $this->select();
$paginator = Zend_Paginator::factory($query);
} else {
$oofTable = new Application_Model_DbTable_OriginationOffice();
$query = $oofTable->select();
$query->where('oof_name like ?', $officeName.'%');
if ($oofTable->fetchRow($query)) {
$origination_office = $oofTable->fetchRow($query);
$files = $origination_office->findDependentRowset($this);
$paginator = Zend_Paginator::factory($files);
} else {
return;
}
}
Zend_Paginator::setDefaultScrollingStyle($scrolling);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('_pagination_control.phtml');
$paginator->setDefaultItemCountPerPage($count);
$paginator->setDefaultPageRange($range);
$paginator->setCurrentPageNumber($page);
return $paginator;
}