cakephp分页与高级过滤器

时间:2015-10-06 10:05:57

标签: php cakephp pagination

我正在使用蛋糕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

3 个答案:

答案 0 :(得分:1)

您缺少'页面'并且限制' Cakephp默认分页的属性。

在您的选项数组中,您需要传递页码而不是每页的记录数。

这样的东西,但是以动态的方式。

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

答案 1 :(得分:1)

$('#filter').submit();尝试提交表单并从您的jquery part replace filter中删除ajax刷新数据。

答案 2 :(得分:0)

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);    
}