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 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
基于php验证码函数的使用示例
May 03 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
PHP内核探索:变量概述
Jan 30 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP实现简单数字分页效果
Jul 26 PHP
Thinkphp无限级分类代码
Nov 11 PHP
php数组指针函数功能及用法示例
Feb 11 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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 分页类 扩展代码
2009/06/11 PHP
一个PHP的String类代码
2010/04/20 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
九步学会Python装饰器
2015/05/09 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
详解python中的线程与线程池
2019/05/10 Python
python写入文件自动换行问题的方法
2019/07/05 Python
详解python播放音频的三种方法
2019/09/23 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
python多进程并发demo实例解析
2019/12/13 Python
Python库安装速度过慢解决方案
2020/07/14 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
离职证明标准格式
2014/09/15 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书