Cakephp自定义查找类型分页



我创建了一个自定义查找类型,并试图对结果进行分页,但分页器似乎忽略了findType设置。有人能告诉我我做错了什么吗?

(CakePHP 2.X)

在我的控制器中:

public function list($username=null) {
    $this->Paginator->settings = array(
        'Question' => array(
              'findType' => 'unanswered',
              'conditions' => array('Question.private' => 0),
    );
    $data = $this->Paginator->paginate('Question');
    $this->set('data', $data);
);

在我的模型中自定义查找类型设置:

public $findMethods = array('unanswered' => true);
protected function _findUnanswered($state, $query, $results = array()) {
    if ($state == 'before') {
        $query['order'] = array('Question.created DESC');
        $query['conditions'] = array_merge($query['conditions'], array('Question.date_answered' => ''));
        return $query;
        $this->log($query);
    } elseif ($state == 'after') {
        return $results;
    }
} 

编辑
如果我删除$this->paginate->设置,并将其替换为:,我可以对查询进行分页

$this->paginate = array('unanswered'); 

但是,我想添加一些附加条件。,这不起作用:

$this->paginate = array('unanswered' => 'conditions' => array('Question.user_id' => $id, 'limit' => 4)) ); 

这可能吗?

findType被添加到CakePHP 2.3中的paginator组件中,我使用的是2.0

http://api.cakephp.org/2.3/class-PaginatorComponent.html

相关内容

最新更新