我想用Zend_Paginator分页搜索结果。所以,我把我的数据到分页程序实例:如何分页搜索结果?
$paginator = new Zend_Paginator (
new Zend_Paginator_Adapter_DbSelect ($data)
);
数据返回这样
public function getData($idArray){
$db = Zend_Db_Table::getDefaultAdapter();
$selectProgramme = new Zend_Db_Select($db);
$selectProgramme->from('programme')
->order('id DESC')
->where('id IN(?)', $idArray);
return $selectProgramme;
}
$idArray
是由我的搜索实现提供。这一切都很好,我得到正确的数据和分页链接显示。
但是我无法对结果进行分页,因为分页链接无效。所以正常的分页将有以下链接:
mysite.de/home/index/page/1
在搜索
我现在有
mysite.de/home/search/page/1
这是行不通的。任何建议如何实现搜索分页?
编辑:我有一个HomeController
两个行动,索引和搜索行动。 IndexAction显示所有数据,我可以对它进行分页。
public function indexAction(){
//...
$paginator = new Zend_Paginator(
new Zend_Paginator_Adapter_DbSelect($data)
);
$paginator->setItemCountPerPage(16)
->setPageRange(20)
->setCurrentPageNumber($this->_getParam('page', 1));
$this->view->data = $paginator;
}
的searchActions处理搜索过程:
public function searchAction(){
$response = $solr->search($this->getRequest()->getParam('search', null));
//...if items found get the data exactly the same way as in the
// index action, using Zend_Paginator_Adapter_DbSelect
$paginator = new Zend_Paginator(
new Zend_Paginator_Adapter_DbSelect($data)
);
$paginator->setItemCountPerPage(16)
->setPageRange(20)
->setCurrentPageNumber($this->_getParam('page', 1));
$this->view->data = $paginator;
}
所以像你在搜索行动看到有一个问题,搜索过程中,当我分页。我需要决定是否搜索或分页。对此有何建议?
发布整个操作代码,因为我不明白你得到的路由过程的结果。你是否正在使用searchAction或indexAction进行分页? – Ololo 2011-03-30 19:30:10
我更新了我的问题,希望现在清楚。 – 2011-03-30 20:02:47