从Laravel 5.7开始,paginator 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
变量似乎已经删除了额外的页面 .
1 回答
paginator使用bootstrap-4 blade view来呈现页面 . 此视图始终实现三点 .
您可以创建一个自定义视图,使所有分页页面都没有任何三分点项目,并将此视图作为第一个参数传递给links function .
Update: 您正在使用的视图与Laravel中构建的视图完全相同 . 你不应该使用
$element
变量,因为它会被三角形点元素加入窗口 .你应该使用分页lastpage变量并自己遍历所有页面 . 例如,像这样: