所以我一直致力于一个从外部提取数据的分页系统,在经过反复试验后我得到了解决方案。根据文档$paginator = Paginator::make($items, $totalItems, $perPage);
我想知道$perPage
参数的实际用途是什么?您会认为指定的数字会显示许多项目。但是通过手动分页,您必须限制传递到$items
的结果才能使其正常工作,否则您将获得所有项的输出(如下面的代码块所示)。手动分页是否有缺陷?因为如果$perPage
与数组$items
中的项目总数不匹配,则会显示所有内容。
示例:Paginator::make( array('10xarray') ), 10, 2);
它会显示5个页面,每页有2个项目?实际上它实际上显示了10个项目,其中5个页面都显示相同的10个项目。
<?php
class MainController extends BaseController {
public function library()
{
$this->layout->title = 'testing';
$this->layout->main = View::make('library/layout');
// Pagination data
$media = array(
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test')
);
$perPage = 2;
$currentPage = Input::get('page', 1);
$pagedData = array_slice($media, ($currentPage - 1) * $perPage, $perPage);
$this->layout->main->paginated = Paginator::make($pagedData, count($media), $perPage);
if(Request::ajax()) {
return Response::json(
View::make(
'library/layout',
array('paginated' => $this->layout->main->paginated)
)->render()
);
}
}
}
答案 0 :(得分:0)
本手册paginator
只是一个容器。仅此而已。你是如何实现它的。
没有LIMIT
查询,你永远不能进行分页。当你使用pagination()
时,laravel完成了工作。当你去手动时,你必须手动完成并获得更好的控制。
为什么你认为它首先被称为手动分页?