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 相关文章推荐
PHP防注入安全代码
Apr 09 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
深入PHP autoload机制的详解
Jun 09 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
PHP获取文件行数的方法
Jun 10 PHP
两款万能的php分页类
Nov 12 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
详解PHP队列的实现
Mar 14 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP has encountered an Access Violation
2007/01/15 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
快速入门Vue
2016/12/19 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python3 实现调用串口功能
2019/12/26 Python
Python如何执行系统命令
2020/09/23 Python
运行Python编写的程序方法实例
2020/10/21 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
土木工程毕业生推荐信
2013/10/28 职场文书
应聘面试自我评价
2014/01/24 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
校园文明标语
2014/06/13 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
解除同居协议书
2015/01/29 职场文书
签约仪式致辞
2015/07/30 职场文书