cakephp分页中的自定义查找器方法

时间:2018-06-05 13:07:05

标签: cakephp cakephp-3.0

控制器代码:

public $paginate = [
        'fields' => ['Subscribes.id'],
        'limit' => 1,
        'order' => [
            'Subscribes.created' => 'desc'
        ]
    ];

控制器方法代码:这里$ type是变量,value可以是interger 1,2 3等

        $customFinderOptions = [
            'type' => $type
        ];

        $this->paginate = [
            'finder' => [
                'typed' => $customFinderOptions
            ]
        ];

        $contacts = $this->paginate($this->Subscribes);

型号代码:

public function findTyped(Query $query, array $options) {

        $type = $options['type'];
        return $query->where(['type' => $options['type']]);
    }

错误:正如您所见,limit设置为1,但它返回所有记录。这意味着分页不适用于自定义查找器方法。

1 个答案:

答案 0 :(得分:1)

它无法正常工作,因为您正在覆盖$paginate变量。在控制器操作中设置一次,使用array_merge()或仅更新单个键:

$this->paginate["finder"] = [...];