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下通过伪造http头破解防盗链的代码
Jul 03 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
PHP多维数组排序array详解
Nov 21 PHP
php post换行的方法
Feb 03 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和ACCESS写聊天室(二)
2006/10/09 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
Python gevent协程切换实现详解
2020/09/14 Python
Python调用飞书发送消息的示例
2020/11/10 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
python中使用np.delete()的实例方法
2021/02/01 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
英国儿童图书网站:Scholastic
2017/03/26 全球购物
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
策划助理岗位职责
2013/11/18 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
多表查询、事务、DCL
2021/04/05 MySQL