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 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
我的论坛源代码(七)
Oct 09 PHP
php代码把全角数字转为半角数字
Dec 10 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
自制PHP框架之设计模式
May 07 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
解析laravel使用workerman用户交互、服务器交互
Apr 28 PHP
详解Laravel制作API接口
May 31 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
jQuery 1.0.2
2006/10/11 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
创建简单的node服务器实例(分享)
2017/06/23 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
python回调函数用法实例分析
2015/05/09 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
Python实现不规则图形填充的思路
2020/02/02 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
印度低票价航空公司:GoAir
2017/10/11 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
后勤部经理岗位职责
2014/02/23 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
听证通知书
2015/04/24 职场文书
网聊搭讪开场白
2015/05/28 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js