限制Laravel 5分页链接

4

我有一个包含链接 [1, 2, 3, 4, 5, 6, 7, 8 ... 99, 100] 的分页,我如何将显示限制更改为[1, 2, 3, ... 98, 99, 100]?我有自定义分页类,但我找不到覆盖它的限制来使用我的新类。


我找不到限制,所以无法尝试 :) 在Stack上找到一个类似的问题,但那个答案对我没有帮助。那段代码对我没用。 - Levan Lotuashvili
这是我的自定义分页器类:https://gist.github.com/Lotuashvili/e8bc5ca0c1a7b69be81f - Levan Lotuashvili
3个回答

2

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

这可以通过调用render($presenter)来完成,您的Presenter必须扩展BootstrapThreePresenter,如果您希望使用bootstrap链接,您只需要重写构造函数并传递每侧所需的链接数$this->window = UrlWindow::make($numberOfLinksEachSide)

这些只是指示,您必须自己查找,很抱歉无法提供完整的代码,我在手机上。 请告诉我是否有效。


我刚刚做了同样的研究,但无法通过一些标志或实例注入来配置它,而不必扩展 presenter 类,这让我感到不满意。 - Jan.J
是的,他们没有这样做真是遗憾。 - yazfield

0

您可以通过更改一些核心字段(虽然不建议更改核心文件)轻松完成此操作。

找到- vendor/laravel/framework/src/Illuminate/Pagination,然后转到UrlWindow。 在此页面上查找一些参数,例如- $onEachSide,$window。 更改并尝试使用这些参数。


0
这是我对同样问题的解决方案... 在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,因为它在任何地方都没有传递,并允许将其作为参数传递给函数links。

要使用此方法,您需要像这样调用此链接方法:

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

每边都有数字2。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接