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

问题描述 投票:0回答:1

控制器代码:

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

控制器方法代码:这里$type是变量,值可以是整数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']]);
    }

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

php cakephp cakephp-3.0
1个回答
1
投票

它不起作用,因为您正在覆盖您的

$paginate
变量。在控制器操作中设置一次,使用
array_merge()
,或仅更新单个键:

$this->paginate["finder"] = [...];
© www.soinside.com 2019 - 2024. All rights reserved.