Cakephp 2.x:如何对现有数组(json 等)中的数据进行分页?

Cakephp 2.x: how to paginate data from an existing array (json, etc)?

我使用远程 API 检索数据(采用 xml、json 格式),我正在缓存这些数据。 但是我需要在渲染之前正确地对这些数据进行分页。

我不想将此数据存储在数据库中。

我可以重新创建一个 PHPPaginator 组件并自己进行数据操作(Hash::sort、过滤等)like mentioned here但我很想重用分页助手。

我试图了解 Paginator 组件如何将数据传输到 Paginator 助手,但我找不到它的实例化位置和设置数据的位置。

我看到 $this->Paginator->settings 给出了一个经典模型:

array(
'page' => (int) 1,
'current' => (int) 100,
'count' => (int) 341,
'prevPage' => false,
'nextPage' => true,
'pageCount' => (int) 4,
'order' => 'Model.created DESC',
'limit' => (int) 100,
'options' => array(),
'paramType' => 'named'
)

我应该如何实例化 Paginator 助手,以便它以与处理普通数据完全相同的方式自动构建所有链接?

使用此存储库中的数组数据源。只需将您的 json 文件转换为数组或基于它创建您自己的 Json 数据源。

https://github.com/cakephp/datasources

分页器只接受 URL 参数并将它们转换为 find('all') 和 find('count')。助手只是处理在视图中使用分页器组件的参数生成一些 link。真正的分页是通过使用模型对象查找所有和计数来实现的。