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中使用sockets:从新闻组中获取文章
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php 数组的一个悲剧?
May 11 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 PHP
PHP数组与字符串互相转换实例
May 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 开发环境配置(测试开发环境)
2010/04/28 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
canvas绘制多边形
2017/02/24 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
使用python实现个性化词云的方法
2017/06/16 Python
Python numpy 常用函数总结
2017/12/07 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
python实现简单坦克大战
2020/03/27 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
人事局接收函
2015/01/31 职场文书
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis