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