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批量删除数据
Jan 18 PHP
自己前几天写的无限分类类
Feb 14 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
百度实时推送api接口应用示例
Oct 21 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
PHP错误处理函数
Apr 03 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
php动态生成JavaScript代码
2009/03/09 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
浅析vue-router原理
2018/10/19 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
python字符串查找函数的用法详解
2019/07/08 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
运动会入场词60字
2014/02/15 职场文书
会议欢迎词范文
2015/01/27 职场文书
员工福利申请报告
2015/05/15 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android
golang定时器
2022/04/14 Golang
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android