我有一个包含链接 [1, 2, 3, 4, 5, 6, 7, 8 ... 99, 100] 的分页,我如何将显示限制更改为[1, 2, 3, ... 98, 99, 100]?我有自定义分页类,但我找不到覆盖它的限制来使用我的新类。
我有一个包含链接 [1, 2, 3, 4, 5, 6, 7, 8 ... 99, 100] 的分页,我如何将显示限制更改为[1, 2, 3, ... 98, 99, 100]?我有自定义分页类,但我找不到覆盖它的限制来使用我的新类。
通过检查类,我发现您必须覆盖Paginator使用的Presenter。
这可以通过调用render($presenter)
来完成,您的Presenter必须扩展BootstrapThreePresenter
,如果您希望使用bootstrap链接,您只需要重写构造函数并传递每侧所需的链接数$this->window = UrlWindow::make($numberOfLinksEachSide)
这些只是指示,您必须自己查找,很抱歉无法提供完整的代码,我在手机上。 请告诉我是否有效。
您可以通过更改一些核心字段(虽然不建议更改核心文件)轻松完成此操作。
找到- vendor/laravel/framework/src/Illuminate/Pagination,然后转到UrlWindow。 在此页面上查找一些参数,例如- $onEachSide,$window。 更改并尝试使用这些参数。
public function links($view = null, $data = [], $onEachSide = 3)
{
if(!$data){
$data = [];
}
$this->onEachSide = $onEachSide;
return $this->render($view, $data);
}
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。