自Laravel 5.7起,分页器links()
方法在调用时仅显示减少的页面数。可以使用onEachSide($count)
方法自定义链接数。
‹‹ ‹ 1 2 ... 47 48 49 50 51 52 53 ... 102 103 › ››
我想使用html <select>
显示每个页面,以使页面选择器下拉菜单。
调用onEachSide(9999)
确实可以,但是看起来很脆弱,并且可能会中断我正在编写的应用程序可以达到的高页面计数。
获取所有页面链接的干净方法是什么?
编辑:我正在使用自定义视图,该视图如下所示:
@if ($paginator->hasPages())
<ul class="pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li class="disabled">‹‹</li>
<li class="disabled">‹</li>
@else
<li><a href="{{ $paginator->toArray()['first_page_url'] }}">‹‹</a></li>
<li><a href="{{ $paginator->previousPageUrl() }}">‹</a></li>
@endif
{{--Pagination Elements --}}
@foreach ($elements as $element)
@if (is_string($element))
<li class="disabled"><span>{{ $element }}</span></li>
@endif
@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 }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li><a href="{{ $paginator->nextPageUrl() }}">›</a></li>
<li><a href="{{ $paginator->nextPageUrl() }}">››</a></li>
@else
<li class="disabled">›</li>
<li class="disabled"><span>››</li>
@endif
</ul>
@endif
$elements
变量似乎已经删除了多余的页面。
答案 0 :(得分:1)
分页器使用bootstrap-4 blade view渲染页面。该视图始终实现三重点。
您可以创建一个自定义视图,以呈现所有分页页面,而没有任何三连点项目,并将该视图作为第一个参数传递给links function。
更新:您使用的视图与Laravel中的一个视图完全相同。您不应该使用$element
变量,因为它会与三重点元素一起出现在窗口中。
您应该使用分页的lastpage变量并自己遍历所有页面。例如,像这样:
{{-- Pagination Elements --}}
@for ($page = 1; $page <= $paginator->lastPage(); $page++)
@if ($page == $paginator->currentPage())
<li class="active"><span>{{ $page }}</span></li>
@else
<li><a href="{{ $paginator->url($page) }}">{{ $page }}</a></li>
@endif
@endforeach