限制Laravel 5分页链接


Limit Laravel 5 pagination links

我有一个链接分页[1,2,3,4,5,6,7,8…]99,100]和如何更改限制显示[1,2,3,…]98, 99, 100] ?我有自定义分页器类,但我找不到在新类中覆盖此限制。

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

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

这些只是说明,你必须自己看,我很抱歉不能提供完整的代码,我在打电话。请让我知道如果这工作。

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

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

和在URLWindow函数make:

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

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

要使用这个方法,你需要像这样调用links方法:
{{ $collection->links('view-to-use'|null, $dataArray|null, 2)}}

其中2为两边的数字。

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

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