【问题标题】:Limit Laravel 5 pagination links限制 Laravel 5 分页链接
【发布时间】:2015-11-07 18:29:32
【问题描述】:

我使用链接 [1, 2, 3, 4, 5, 6, 7, 8 ... 99, 100] 进行分页,如何更改限制以显示 [1, 2, 3, ... 98 , 99, 100] ?我有自定义分页器类,但在我的新类中找不到要覆盖的限制。

【问题讨论】:

标签: php laravel pagination limit


【解决方案1】:

通过检查类,我发现您必须覆盖分页器使用的演示者。

通过调用 render($presenter) 来完成,你的演示者必须扩展 BootstrapThreePresenter 如果你想使用引导链接,你只需要覆盖构造函数并在每一侧传递你想要的链接数 $this->window = UrlWindow::make($numberOfLinksEachSide)

这些只是您必须自己查看的说明,很抱歉无法提供完整的代码,我正在打电话。 请让我知道这是否有效。

【讨论】:

  • 我刚刚做了同样的研究,但对在不扩展演示者类的情况下无法配置(带有一些标志或实例注入)感到不满意。
  • 是的,可惜他们没有这样做
【解决方案2】:

这是我对相同问题的解决方案...在 LengthAwarePaginator 更新功能链接:

public function links($view = null, $data = [], $onEachSide = 3)
{
    if(!$data){
        $data = [];
    }
    $this->onEachSide = $onEachSide;
    return $this->render($view, $data);
}

并在 URLWindow 函数中制作:

public static function make(PaginatorContract $paginator)
{
    return (new static($paginator))->get($paginator->onEachSide);
}

这会从函数 make 中删除参数 $onEachSide - 它永远不会在任何地方传递 - 并允许它作为参数传递给函数链接。

要使用这个,你需要像这样调用这个链接方法:

{{ $collection->links('view-to-use'|null, $dataArray|null, 2)}}

其中 2 是每边的数字。

【讨论】:

    【解决方案3】:

    您可以通过更改一些核心字段轻松做到这一点(尽管不建议更改核心文件)。

    找到 - vendor/laravel/framework/src/Illuminate/Pagination 并转到 UrlWindow。在此页面上找到一些参数,例如 - $onEachSide、$window。改变和玩这些。

    【讨论】:

      猜你喜欢
      • 2016-11-17
      • 2015-06-07
      • 2015-02-23
      • 1970-01-01
      • 2014-09-26
      • 2015-06-05
      • 2017-01-29
      • 2016-10-23
      • 2021-10-17
      相关资源
      最近更新 更多