如何在 laravel 5 分页中实现自定义页码输入框来跳转到自定义页

查看:98
本文介绍了如何在 laravel 5 分页中实现自定义页码输入框来跳转到自定义页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如题:从数据库取出来的数据有几百页那么多,然而,laravel 提供的分页器只显示当前页的前后几页。
但当我想要跳转到分页条上没有的页面时,只能经过跳页逐步达到想要的页面。
有没有方法实现可以在分页条上显示一个输入框,用户可以输入自定义页码,然后跳转到该页浏览数据。

解决方案

明确的告诉你是可以的,而且很简单,有两种方法,这两种方法都是在views/vendor/pagination目录下操作:

  1. 修改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>

  1. 自定义一个分页模板文件,如custom.blade.php,然后在其他模板中的分页方法参数中指定这个分页模板,如{!! $articles->render('vendor/pagination/custom') !!}

这篇关于如何在 laravel 5 分页中实现自定义页码输入框来跳转到自定义页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆