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 SQL防注入代码集合
Apr 25 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php注册登录系统简化版
Dec 28 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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的扩展写法总结
2019/05/14 PHP
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
Django rest framework基本介绍与代码示例
2018/01/26 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python API len函数操作过程解析
2020/03/05 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
普通员工辞职信
2014/01/17 职场文书
企业法人代表任命书
2014/06/06 职场文书
公司领导班子对照材料
2014/08/18 职场文书
个人四风问题整改措施
2014/10/24 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
让生命充满爱观后感
2015/06/08 职场文书
收入证明怎么写
2015/06/12 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
Python开发五子棋小游戏
2022/05/02 Python