laravel实现分页样式替换示例代码(增加首、尾页)


Posted in PHP onSeptember 22, 2017

前言

本文主要给大家介绍了关于laravel分页样式替换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

方法如下:

一、自定义一个类(代码如下),位置随你放,注意命名空间。

二、模板输出调用 {!! $data->render(new \App\Http\Controllers\ShmilyThreePresenter($data)) !!}

最终样式

laravel实现分页样式替换示例代码(增加首、尾页)

实现代码

<?php

//创建继承自 Illuminate\Pagination\BootstrapThreePresenter 类,这里我把类放在了Controllers下面,需要修改BootstrapThreePresenter 类的哪些方法就重写哪个方法。如果觉得默认的bootstrap样式和你项目的样式不符,可以自定义样式。
namespace App\Http\Controllers;
use Illuminate\Contracts\Pagination\Paginator as PaginatorContract;
use Illuminate\Contracts\Pagination\Presenter as PresenterContract;

class ShmilyThreePresenter extends \Illuminate\Pagination\BootstrapThreePresenter
{
 /**
  * Convert the URL window into Bootstrap HTML.
  *
  * @return string
  */
 public function render()
 {
  if ($this->hasPages()) {
   return sprintf(
    '<ul class="am-pagination">%s %s %s %s %s</ul>',//自定义class样式
    $this->firstPage(),//添加首页方法
    $this->getPreviousButton('上一页'),
    $this->getLinks(),
    $this->getNextButton('下一页'),
    $this->last()//添加尾页方法
   );
  }

  return '';
 }

 /**
  * Get HTML wrapper for an available page link.
  *
  * @param string $url
  * @param int $page
  * @param string|null $rel
  * @return string
  */
 protected function getAvailablePageWrapper($url, $page, $rel = null)
 {
  $rel = is_null($rel) ? '' : ' rel="'.$rel.'"';

  return '<li><a href="'.htmlentities($url).'" rel="external nofollow" '.$rel.'>'.$page.'</a></li>';
  //这里li标签可以添加你自己的class样式
 }

 /**
  * Get HTML wrapper for disabled text.
  *
  * @param string $text
  * @return string
  */
 protected function getDisabledTextWrapper($text)
 {
  return '<li class="disabled"><span>'.$text.'</span></li>';
 }

 /**
  * Get HTML wrapper for active text.
  *
  * @param string $text
  * @return string
  */
 protected function getActivePageWrapper($text)
 {
  return '<li class="active"><span>'.$text.'</span></li>';
 }


 /**
  * Get the next page pagination element.
  *
  * @param string $text
  * @return string
  */
  //新建首页方法
 public function firstPage($text = '首页')
 {
  // If the current page is greater than or equal to the last page, it means we
  // can't go any further into the pages, as we're already on this last page
  // that is available, so we will make it the "next" link style disabled.
  if ($this->paginator->currentPage() <= 1) {
   return $this->getDisabledTextWrapper($text);
  }
  $url = $this->paginator->url(1);

  return $this->getPageLinkWrapper($url, $text, 'first');
 }

 /**
  * Get the next page pagination element.
  *
  * @param string $text
  * @return string
  */
  //新建尾页方法
 public function last($text = '尾页')
 {
  // If the current page is greater than or equal to the last page, it means we
  // can't go any further into the pages, as we're already on this last page
  // that is available, so we will make it the "next" link style disabled.

  $url = $this->paginator->url($this->paginator->lastPage());

  return $this->getPageLinkWrapper($url, $text, 'last');
 }

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
php模拟post提交请求调用接口示例解析
Aug 07 PHP
PHP dirname简单使用代码实例
Nov 13 PHP
PHP解决高并发的优化方案实例
Dec 10 PHP
深入理解PHP的远程多会话调试
Sep 21 #PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 #PHP
简单实现php上传文件功能
Sep 21 #PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 #PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 #PHP
基于Laravel实现的用户动态模块开发
Sep 21 #PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 #PHP
You might like
php学习笔记之 函数声明(二)
2011/06/09 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php实现计数器方法小结
2015/01/05 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
Python类的继承super相关原理解析
2020/10/22 Python
出纳岗位职责范本
2013/12/01 职场文书
党支部换届选举方案
2014/05/08 职场文书
活动总结格式
2014/08/30 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
幼儿学前班评语
2014/12/29 职场文书
女方离婚起诉书
2015/05/18 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis