Вы правы, предполагая, что Cake всегда ожидает, что результат базы данных будет разбит на страницы. Одним из самых простых решений является рефакторинг такого класса, как этот , в помощник (для разбивки на страницы) или в компонент (для фильтрации) и передать помощнику / компоненту ваши массивы данных (больше информации о пользовательских помощники и компоненты ). Единственным недостатком этого является то, что ваше приложение должно считывать кэшированные массивы в память перед созданием разбитого на страницы набора результатов.
Есть также эта статья , но я не уверен, применимо ли это к вашей настройке.
Другим вариантом может быть написание собственного источника данных для кэшированных массивов данных, , но документация Cake по этому вопросу немного скудна. Я занимался созданием источника данных для некоторых пользовательских XML-каналов, но никогда не удосужился добавить нумерацию страниц. Из сторонних источников данных, плавающих вокруг, я не уверен, возможно ли это вообще.