如何在CakePHP中用搜索实现分页

如何在CakePHP中用搜索实现分页,cakephp,pagination,cakephp-2.0,Cakephp,Pagination,Cakephp 2.0,我的分页正在工作,甚至搜索也在工作。但我遇到的问题是,当我在分页链接中单击下一页链接时。搜索不适用于分页的下一页。我还需要知道如何通过url发送其他参数,并在分页查询中使用它们。我需要这方面的帮助,因为我是CakePHP的新手 在控制器页面中,我使用了以下代码: class StatesController extends AppController { public $components = array('Paginator'); public $paginate = a

我的分页正在工作,甚至搜索也在工作。但我遇到的问题是,当我在分页链接中单击下一页链接时。搜索不适用于分页的下一页。我还需要知道如何通过url发送其他参数,并在分页查询中使用它们。我需要这方面的帮助,因为我是CakePHP的新手

在控制器页面中,我使用了以下代码:

class StatesController extends AppController {

    public $components = array('Paginator');

    public $paginate = array(
        'limit' => 2,
        'fields' => array('State.id', 'State.state','State.code'),
        'order' => array(
            'State.state' => 'asc'
        )
    );

    public function admin_index() {
        $this->layout = false;
        $this->layout = 'adminlayout';

        //****** pagination starts 

        $search=$this->request->data('State.search');

        $this->Paginator->settings = $this->paginate;
        // similar to findAll(), but fetches paged results
        $stateListAr = $this->Paginator->paginate('State',
            array('State.state LIKE' => "%".$search."%")
        );
        $this->set('stateListAr', $stateListAr);

        //****** pagination ends 

        $this->set('stateListAr',$stateListAr);
        $this->render('admin_index');   
    }
}
<?php echo $this->Paginator->prev('« Previous', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->numbers(array('first' => 'First page')); ?>                  
<?php echo $this->Paginator->next('Next »', null, null, array('class' => 'disabled')); ?> 
在查看页面中,我使用了以下代码:

class StatesController extends AppController {

    public $components = array('Paginator');

    public $paginate = array(
        'limit' => 2,
        'fields' => array('State.id', 'State.state','State.code'),
        'order' => array(
            'State.state' => 'asc'
        )
    );

    public function admin_index() {
        $this->layout = false;
        $this->layout = 'adminlayout';

        //****** pagination starts 

        $search=$this->request->data('State.search');

        $this->Paginator->settings = $this->paginate;
        // similar to findAll(), but fetches paged results
        $stateListAr = $this->Paginator->paginate('State',
            array('State.state LIKE' => "%".$search."%")
        );
        $this->set('stateListAr', $stateListAr);

        //****** pagination ends 

        $this->set('stateListAr',$stateListAr);
        $this->render('admin_index');   
    }
}
<?php echo $this->Paginator->prev('« Previous', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->numbers(array('first' => 'First page')); ?>                  
<?php echo $this->Paginator->next('Next »', null, null, array('class' => 'disabled')); ?> 

我找到了解决问题的方法,在这里。我在视图页面中使用了一个代码,这里是$search变量,我设置了来自控制器的数据。 $search); $this->Paginator->options(数组)( “url”=>$urlParamAr )); echo$this->Paginator->prev(“«上一个”,null,null,数组('class'=>'disabled')

echo$this->Paginator->next('next»),null,null,array('class'=>'disabled')


请解释一下,当你说搜索不适用于下一页分页时,你的意思是什么。你的意思是原来的搜索过滤器丢失了吗?你能提供一个实时url来查看你目前拥有的吗?如果这是不可能的,至少请张贴您的整个视图的源代码。另外,请指定您试图通过url传递的额外参数。是@ChicagoSky,原始搜索不适用于下一页的分页。实际上,应该传递该数据,或者url应该包含该搜索数据。我该怎么做呢。