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伪静态页面函数附使用方法
Jun 20 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
检查php文件中是否含有bom的函数
May 31 PHP
php生成图形(Libchart)实例
Nov 06 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
php绘制一条直线的方法
Jan 24 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 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脚本的10个技巧(4)
2006/10/09 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
js中判断控件是否存在
2010/08/25 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
图文详解WinPE下安装Python
2016/05/17 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python交互式图形编程的实现
2019/07/25 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
就业表自我评价分享
2014/02/06 职场文书
学校教学工作总结2015
2015/05/19 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL
详解Spring事件发布与监听机制
2021/06/30 Java/Android
使用python求解迷宫问题的三种实现方法
2022/03/17 Python