84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如题:从数据库取出来的数据有几百页那么多,然而,laravel 提供的分页器只显示当前页的前后几页。但当我想要跳转到分页条上没有的页面时,只能经过跳页逐步达到想要的页面。有没有方法实现可以在分页条上显示一个输入框,用户可以输入自定义页码,然后跳转到该页浏览数据。
光阴似箭催人老,日月如移越少年。
明确的告诉你是可以的,而且很简单,有两种方法,这两种方法都是在views/vendor/pagination目录下操作:
views/vendor/pagination
修改default.blade.php,类似代码如下:
default.blade.php
<ul class="pagination no-margin pull-right"> {{-- 首页 --}} @if ($paginator->onFirstPage()) <li class="disabled"> <span>首页</span> </li> @else <li> <a href="{{ $paginator->url(1) . '&limit=' . $paginator->perPage() }}">首页</a> </li> @endif {{-- 上一页 --}} @if ($paginator->onFirstPage()) <li class="disabled"> <span>上一页</span> </li> @else <li> <a href="{{ $paginator->previousPageUrl() . '&limit=' . $paginator->perPage() }}">上一页</a> </li> @endif {{-- Pagination Elements --}} @foreach ($elements as $element) <!-- "Three Dots" Separator --> @if (is_string($element)) <li class="disabled"><span>{{ $element }}</span></li> @endif <!-- Array Of Links --> @if (is_array($element)) @foreach ($element as $page => $url) @if ($page == $paginator->currentPage()) <li class="active"><span>{{ $page }}</span></li> @else <li><a href="{{ $url . '&limit=' . $paginator->perPage() }}">{{ $page }}</a></li> @endif @endforeach @endif @endforeach {{-- 下一页 --}} @if ($paginator->hasMorePages()) <li> <a href="{{ $paginator->nextPageUrl() . '&limit=' . $paginator->perPage() }}">下一页</a> </li> @else <li class="disabled"> <span>下一页</span> </li> @endif {{-- 尾页 --}} @if ($paginator->hasMorePages()) <li> <a href="{{ $paginator->url($paginator->lastPage()) . '&limit=' . $paginator->perPage() }}">尾页</a> </li> @else <li class="disabled"> <span>尾页</span> </li> @endif </ul> <ul class="clearfix"></ul> {{-- 增加输入框,跳转任意页码和显示任意条数 --}} <ul class="pagination pagination-sm no-margin no-padding pull-right"> <li> <span data-toggle="tooltip" data-placement="bottom" title="输入页码,按回车快速跳转"> 第 <input type="text" class="text-center no-padding" value="{{ $paginator->currentPage() }}" id="customPage" data-total-page="{{ $paginator->lastPage() }}" style="width: 50px;"> 页 / 共 {{ $paginator->lastPage() }} 页 </span> </li> <li> <span data-toggle="tooltip" data-placement="bottom" title="输入每页条数,按回车快速跳转"> 每页 <input type="text" class="text-center no-padding" value="{{ $paginator->perPage() }}" id="customLimit" data-total="{{ $paginator->total() }}" style="width: 50px;"> 条 / 共 {{ $paginator->total() }} 条 </span> </li> </ul>
自定义一个分页模板文件,如custom.blade.php,然后在其他模板中的分页方法参数中指定这个分页模板,如{!! $articles->render('vendor/pagination/custom') !!};
custom.blade.php
{!! $articles->render('vendor/pagination/custom') !!}
明确的告诉你是可以的,而且很简单,有两种方法,这两种方法都是在
views/vendor/pagination
目录下操作:修改
default.blade.php
,类似代码如下:自定义一个分页模板文件,如
custom.blade.php
,然后在其他模板中的分页方法参数中指定这个分页模板,如{!! $articles->render('vendor/pagination/custom') !!}
;