繁体   English   中英

cakephp 2-分页超过第一页不起作用

[英]cakephp 2 - pagination beyond 1st page doesn't work

我有一个带有搜索输入的表单:

echo $this->Form->create('Job', array('url'=>array('controller'=>'jobs', 'action'=>'search'), 'action'=>'search', 'inputDefaults' => array( 'label' => false, 'div'=>false))); 
echo '<br/>'.$this->Form->input('search', array( 'label' => false, 'div'=>false));
echo $this->Form->submit('Search', array('div' => false));

在我的控制器中,我有分页数组,如下所示:

public $paginate = array(
    'Job' => array(
        'fields' => array('Job.id', 'Job.name', 'Job.description', 'Job.tag_words'),
        'limit' => 5,
        'order' => array(
            'Job.name' => 'asc'
        )),
);

然后我的搜索功能是:

public function search () {
if ($this->request->is('post')) {
    $conditions = array();
    $search_terms = explode(' ', $this->request->data['Mix']['search']);
    foreach($search_terms as $search_term){
        $conditions[] = array('Mix.name Like' =>'%'.$search_term.'%');
        $conditions[] = array('Mix.description Like' =>'%'.$search_term.'%');
        $conditions[] = array('Mix.tag_words Like' =>'%'.$search_term.'%');
    }
    $searchResults = $this->paginate('Mix', array('Mix.published'=>1, 'OR' => $conditions));
    $this->set('searchResults', $searchResults);
}
}

这适用于结果的第一页,但在我看来,我有上一个/下一个助手,单击以转到第二页只会显示一个空白页。 我该如何保留搜索词并转到第二页?

Paginator :: sort方法使用get来传递参数,您应将搜索项作为GET传递,然后在视图中调用分页链接之前,请尝试以下操作:

$this->Paginator->options = array(
    'url' => $this->passedArgs
);

那应该使您的搜索词与分页链接保持一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM