제목 그대로 데이터베이스에서 가져온 데이터가 수백 페이지에 달합니다. 하지만 laravel에서 제공하는 페이지네이터는 현재 페이지의 앞과 뒤의 페이지만 표시합니다.
하지만 페이징 바에 없는 페이지로 이동하고 싶을 때에는 페이지 점프를 통해서만 원하는 페이지까지 한 단계씩 이동할 수 있습니다.
사용자가 사용자 정의 페이지 번호를 입력한 다음 해당 페이지로 이동하여 데이터를 탐색할 수 있는 입력 상자를 페이징 표시줄에 표시하는 방법이 있습니까?
淡淡烟草味2017-05-16 16:50:07
가능하다는 점을 분명히 말씀드리며, 매우 간단합니다. 두 가지 방법 모두 views/vendor/pagination
디렉터리에서 작동됩니다. views/vendor/pagination
目录下操作:
修改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') !!}
default.blade.php
를 수정하세요. 비슷한 코드는 다음과 같습니다: custom.blade.php
와 같은 페이징 템플릿 파일을 사용자 정의한 다음 {!와 같은 다른 템플릿의 페이징 방법 매개변수에 이 페이징 템플릿을 지정하세요! ! $articles->render('vendor/pagination/custom') !!}
;🎜🎜🎜