CakePHP:使用数组自定义分页
我正在尝试用CakePHP对数组进行分页。该数组是从JSON文件中提取的,因此不使用任何数据库查询或其他方式。我试图坚持使用CakePHP的函数,以确保我不会编写无用的代码。我一直在四处寻找,找不到任何关于我的问题的答案 该阵列如下所示:CakePHP:使用数组自定义分页,php,arrays,pagination,cakephp-3.0,Php,Arrays,Pagination,Cakephp 3.0,我正在尝试用CakePHP对数组进行分页。该数组是从JSON文件中提取的,因此不使用任何数据库查询或其他方式。我试图坚持使用CakePHP的函数,以确保我不会编写无用的代码。我一直在四处寻找,找不到任何关于我的问题的答案 该阵列如下所示: array(161) { [0]=> array(8) { ["id"]=> int(589) ["status"]=> string(7) "running" ["thread
array(161) {
[0]=> array(8) {
["id"]=> int(589)
["status"]=> string(7) "running"
["threads"]=> int(12)
["create_time"]=> float(1487712882.42)
["memory_usage_precent"]=> float(11.0328674316)
["cpu_usage_precent"]=> int(62)
["cwd"]=> string(1) "/"
["process_name"]=> string(16) "plugin-container"
}
}
这是数组中161行中的一行。如何使用CakePHP的方法对此进行分页?下面是一个从
数组进行分页的示例
步骤1-PHP数据数组:
$data = [
[
"id"=> 0,
"status"=> "running"
],[
"id"=> 1,
"status"=> "running"
],
#More Arrays ...
];
for($i=$StartFrom; $i<$StartFrom+$DisplayLimit; $i++){ #Increase the Array index by Limit
if($i>=$TotalDatas){
continue; #Break Or put some message, Because no more Data in Array
}
var_dump($data[$i]);
}
localhost?page=3
步骤2-准备数据[计算]
$TotalDatas = count($data); #Total number of Data in Array
$StartFrom = 0; #Start from Array index
$DisplayLimit = 2; #Limit the result per page
$CurrentPage = isset($_GET['page'])? $_GET['page'] : 0; #Get the page number value from URL
$StartFrom = $CurrentPage*$DisplayLimit; #Update the Array index by calculating Page number and Limit
步骤3-使用循环显示数据:
$data = [
[
"id"=> 0,
"status"=> "running"
],[
"id"=> 1,
"status"=> "running"
],
#More Arrays ...
];
for($i=$StartFrom; $i<$StartFrom+$DisplayLimit; $i++){ #Increase the Array index by Limit
if($i>=$TotalDatas){
continue; #Break Or put some message, Because no more Data in Array
}
var_dump($data[$i]);
}
localhost?page=3
注意:以上代码是基本分页的简单示例
Cake的Paginator组件和Paginator帮助器专门设计用于通过操纵下面的查询对从表类加载的模型进行分页。它们不能用于对数组进行分页。您需要手动对此进行分页。