首页 文章

Laravel显示paginator中的所有链接

提问于
浏览
0

从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">&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 回答

  • 1

    paginator使用bootstrap-4 blade view来呈现页面 . 此视图始终实现三点 .
    您可以创建一个自定义视图,使所有分页页面都没有任何三分点项目,并将此视图作为第一个参数传递给links function .


    Update: 您正在使用的视图与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
    

相关问题