cakephp分页与先进的过滤器


cakephp pagination with advance Filter

我正在使用cake php滚动分页来分页产品。我在视图部分使用一组复选框来设置手动条件由用户分页。我使用以下代码设置ajax请求后的条件。

class SearchController  extends AppController {
public $helpers = array('Html', 'Form', 'Session','Paginator','Js' => 'Jquery');
public $components = array('RequestHandler','Session','Cookie','Paginator');
public function index() {
$this->loadModel("Bangsworkinghrs");
$agetworkinghrs = $this->Bangsworkinghrs->getworkinghrs();
$this->set('agetworkinghrs', $agetworkinghrs);  
$this->loadModel("Gig");
    $options = array('Gig.subcategory' => 'Logo Design');
    if(!empty($this->request->data['filter']['workinghrs'])) {
        $options = array('Gig.subcategory' => 'Logo');
    }
    $this->Paginator->settings = $options;
    $agetGigsItem = $this->Paginator->paginate('Gig', $options);
    $this->set('agetGigsItem', $agetGigsItem);   
}
}

通过这段代码,我能够改变分页的条件,但服务器爆炸只有默认的20条记录下记录不是由服务器爆炸,没有错误信息我的cakephp版本是2.6.8

$('#filter').submit();尝试提交表单和删除ajax刷新数据从您的jquery部分替换过滤器与您的表单名称

您缺少Cakephp默认分页的'page'和'limit'属性。

在你的选项数组中,你需要传递页码和每页的记录数。

类似于此,但以动态的方式。

$options = array('conditions' => array('Gig.subcategory' => 'Logo Design'),'page'=>2,'limit'=>20);

using action="get" in the form where $this->request->query['filter']['workinghrs'] data is come.
编码:

public $paginate = array(
        'limit' => 20
    );
public function index() 
{
    $this->loadModel("Gig");
    $options = array('Gig.subcategory' => 'Logo Design');
    if(!empty($this->request->query['filter']['workinghrs'])) {
        $options = array('Gig.subcategory' => 'Vector Design');
    }
    $this->Paginator->settings = $options;
    $agetGigsItem = $this->Paginator->paginate('Gig', $options);
    $this->set('agetGigsItem', $agetGigsItem);    
}