Laravel显示分页器中的所有链接

时间:2018-12-10 09:10:50

标签: laravel laravel-5.7

自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">&lsaquo;&lsaquo;</li>
            <li class="disabled">&lsaquo;</li>
        @else
            <li><a href="{{ $paginator->toArray()['first_page_url'] }}">&lsaquo;&lsaquo;</a></li>
            <li><a href="{{ $paginator->previousPageUrl() }}">&lsaquo;</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() }}">&rsaquo;</a></li>
            <li><a href="{{ $paginator->nextPageUrl() }}">&rsaquo;&rsaquo;</a></li>
        @else
            <li class="disabled">&rsaquo;</li>
            <li class="disabled"><span>&rsaquo;&rsaquo;</li>
        @endif
    </ul>
@endif

$elements变量似乎已经删除了多余的页面。

1 个答案:

答案 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