控制器代码:
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,但它返回所有记录。这意味着分页不适用于自定义查找器方法。
答案 0 :(得分:1)
它无法正常工作,因为您正在覆盖$paginate
变量。在控制器操作中设置一次,使用array_merge()
或仅更新单个键:
$this->paginate["finder"] = [...];