使用手动分页" $ perPage"参数

时间:2014-11-11 23:59:40

标签: php laravel laravel-4 pagination

所以我一直致力于一个从外部提取数据的分页系统,在经过反复试验后我得到了解决方案。根据文档$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()
            );
        }
    }
}

1 个答案:

答案 0 :(得分:0)

它并没有缺陷。这是预期的行为。

本手册paginator只是一个容器。仅此而已。你是如何实现它的。

没有LIMIT查询,你永远不能进行分页。当你使用pagination()时,laravel完成了工作。当你去手动时,你必须手动完成并获得更好的控制。

为什么你认为它首先被称为手动分页