Pagination 如何在CakePHP 3中对自定义查找器的结果进行分页
在CakePHP 3特别是3.7中,如何对自定义查找器的结果进行分页 我有一个带有自定义查找器的模型:Pagination 如何在CakePHP 3中对自定义查找器的结果进行分页,pagination,cakephp-3.0,cakephp-3.x,Pagination,Cakephp 3.0,Cakephp 3.x,在CakePHP 3特别是3.7中,如何对自定义查找器的结果进行分页 我有一个带有自定义查找器的模型: // src/Model/Table/RevisionFiltersTable.php public function findRegulatoryNotifications($date_start, $date_end, $regulation_id = 1, $u_id, $o_id, $count_only = false) { } 在这个查找器中,有一些方法可以使用ORM并执行查询
// src/Model/Table/RevisionFiltersTable.php
public function findRegulatoryNotifications($date_start, $date_end, $regulation_id = 1, $u_id, $o_id, $count_only = false)
{
}
在这个查找器中,有一些方法可以使用ORM并执行查询,返回$query->toArray
目前,我正在控制器方法中手动调用此函数,如下所示:
$RevisionFilters = TableRegistry::getTableLocator()->get('RevisionFilters');
$data = $RevisionFilters->findRegulatoryNotifications(...);
它返回所有正确的数据,但未分页。例如,如果有55行,我会得到一个包含55个键的数组
我传入的参数适用于FindRegulatoryNotification的签名
我在文档中读过关于使用分页和自定义查找程序的内容
但我不知道如何在我的控制器中实现这一点
文件中给出了一个例子:
$this->paginate = [
'finder' => [
'tagged' => $customFinderOptions
]
];
所以我想我可以这样做:
$RevisionFilters->paginate = [
'finder' => [
'regulatoryNotifications' => $customFinderOptions
]
];
我不明白在这种情况下$customFinderOptions应该设置为什么
假设我能够克服这个问题,那么我如何将我的论点传递给FindRegulatoryNotification呢
无法提供比这更多的代码,因为我不知道如何设置它。这不是查找器方法应该是什么样子,查找器只接受两个参数,第一个是查询本身,第二个是传递给query::find的第二个参数的选项数组,在这个例子中,$customFinderOptions就是一个选项数组 这里只有一个表方法,如果您想使用它进行分页,该方法需要返回一个查询对象,您可以手动调用该方法并将其返回值传递给分页器 另见