laravel自定义分页模版

laravel自身paginate()等分页的样式比较简单,而且生成的html只支持 Bootstrap CSS。

1、简单粗暴的修改

laravel5.4里面分页样式模版在目录与文件是:           
 \vendor\laravel\framework\src\Illuminate\Pagination\resources\views\default.blade.php
若想简单粗暴修改模版,直接修改default.blade.php的代码即可。

2、替换默认模版

本人不太愿意过多的去修改框架自身的代码。选择新建分页模版。

(1)创建替换blade模板

在 resources\views 目录创建分页模版。本人是再 resources\views\layouts 创建了 page.blade.php模版

(2)指定 统一默认模版

在 app\Providers\AppServiceProvider.php 的 boot() 方法里,添加如下代码:
\Illuminate\Pagination\LengthAwarePaginator::defaultView('layouts.page'); 
// 这里layouts.page是你分页模版的路径

刷新页面,新模版即生效,而且也不需要你在前端页面指定模版。直接在其它blade里面执行 
{{ $xxx->links() }} 即可调用成功 。($xxx为你传递到页面的数据,如paginate() 查询后传递的数值 )

(3)单个指定分页模版

在前端blade.php里面,也可以单独指定模版。假如分页模版文件为:
 resources\views\layouts\page.blade.php
只需在前端x.blade.php加上 {{ $xxx->links('layouts.page') }} 即可

自己用的是layui 前端框架,其分页模版代码如下,方便自己下次copy

@if ($paginator->hasPages())
<div id="page">
 <div class="layui-box layui-laypage layui-laypage-default" id="layui-laypage-1">
         {{-- Previous Page Link --}}
     @if ($paginator->onFirstPage())
         <a href="javascript:;" class="layui-laypage-prev layui-disabled" data-page="0">上一页</a>
     @else
         <a href="{{ $paginator->previousPageUrl() }}" class="layui-laypage-prev" data-page="{{ $paginator->currentPage() -1 }}">上一页</a>
     @endif

         {{-- Pagination Elements --}}
         @foreach ($elements as $element)

             {{-- Array Of Links --}}
             @if (is_array($element))
                 @foreach ($element as $page => $url)
                     @if ($page == $paginator->currentPage())
                         <span class="layui-laypage-curr"><em class="layui-laypage-em"></em><em>{{ $page }}</em></span>
                     @else
                          <a href="{{ $url }}" data-page="{{ $page }}">{{ $page }}</a>
                     @endif
                 @endforeach
             @endif
         @endforeach

         {{-- Next Page Link --}}
         @if ($paginator->hasMorePages())
             <a href="{{ $paginator->nextPageUrl() }}" class="layui-laypage-next" data-page="{{ $page }}">下一页</a>
         @else
             <a href="javascript:;" class="layui-laypage-next layui-disabled" data-page="{{ $page }}">下一页</a>
         @endif
         <span class="layui-laypage-count">共 {{ $paginator->total() }} 条</span>
         <span class="layui-laypage-skip">到第
             <input type="text" min="1" name="page" value="1" class="layui-input" id="inputpage">页
             <a class="layui-laypage-btn" onclick="set_pageurl()" href = "javascript:;" >确定</a>
         </span>
     </div>
 </div>
 <script type="text/javascript">
     function set_pageurl(){
         var jump_page = document.getElementById('inputpage').value;
         var search = window.location.search
         if (search.length > 0){
             if (search.indexOf('page') > -1){
                 jump_url = search.replace(/page=\d/,'page=' + jump_page)
             } else {
                 jump_url = search + '&page=' + jump_page;
             }
         } else {
             jump_url = '?page='+ jump_page;
         }
         window.location.href = jump_url
     }
 </script>
@endif

转载于:https://my.oschina.net/u/3403514/blog/1525149

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值