【问题标题】:Laravel 4 Custom PaginationLaravel 4 自定义分页
【发布时间】:2014-04-16 05:29:49
【问题描述】:

我有一个数组(从 Json 转换而来),我希望对它进行分页。我对 Laravel 还很陌生,文档通常都很棒,但偶尔也会有一些不足。

我创建分页实例的代码是:

$plugin_return = Paginator::make($plugin, count($plugin), 20);

但是,当我 @foreach 在我看来,它返回了几千行而不是我想要的 20 行(并在上面的代码中说明)。

$plugin_return->count() 返回int(9027)

我也试过$plugin_return->getItems(),它也返回所有9027个元素。 $plugin_return->getPerPage() 返回int(20)

这是一个错误还是我失败了?

【问题讨论】:

    标签: php laravel pagination laravel-4


    【解决方案1】:

    您是否尝试过这样做:

     $plugin_return = Paginator::make($plugin, count($plugin), 20);
    
     foreach($plugin_return->getCollection()->all() as $plugin)
          $plugin-> something;
     endforeach
    
     $plugin_return->links();
    

    【讨论】:

    • 仍然返回所有 9027 个元素。
    • 那 9027 项是数组的总大小对吗?
    • 正确。 Array ( [0] => Array ( [description] => Stop users swearing [plugin_name] => NoSwear [slug] => a5h73y ) [1] => Array ( [description] => [plugin_name] => AaaaahDeath [slug ] => aaaaahdeath ) [2] => Array ( [description] => aAntiSpam alles via Config [plugin_name] => aAntiSpam [slug] => aantispam ) ) 这是数组的一个例子..
    • 使用array_chunk() 用普通的php来做怎么样?
    • 哦,看看这个页面。我认为它可以解决你的问题。 laravelsnippets.com/snippets/…
    【解决方案2】:

    请从这里阅读更多关于分页器的信息:http://culttt.com/2014/02/24/working-pagination-laravel-4/ 它有一个很好的例子来说明如何使用它。

    基本上,当您遍历 $plugin_return 时,分页器会返回您的所有 $plugins。正如您所说,您需要的是$plugin_return->getPerPage() 并对其进行迭代,这不是错误,这就是 Paginator 的工作方式

    通常你会有你的模型,例如插件模型,你会运行类似的东西:

    Plugin::paginate(10);
    

    基本去掉了Paginator,多用于自定义

    在简单的 Paginator 上挖掘更多内容,您需要自己构建视图。 Look here for an example

    在第一个链接中,作者通过覆盖 getByPage 复制了模型提供的功能。

    【讨论】:

    • 不要以为我完全理解,它运行的是 int 而不是数组?
    • 我根据我的想法编辑了答案,您很可能会想要这样做
    • 我希望我能以简单的方式做到这一点,不幸的是,我正在从外部服务器获取一个外部 JSON 文件并想要处理该数组。
    • 更新了示例链接
    猜你喜欢
    • 2016-09-21
    • 2015-06-09
    • 2017-02-28
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2015-09-13
    • 2013-09-22
    • 2014-05-08
    相关资源
    最近更新 更多