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 相关文章推荐
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
php mysql数据库操作类
Jun 04 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
php向js函数传参的几种方法
Aug 10 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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(1)
2006/10/09 PHP
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
vue-cli的eslint相关用法
2017/09/29 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
python实现多线程抓取知乎用户
2016/12/12 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
小学教研工作制度
2014/01/15 职场文书
小学毕业感言150字
2014/02/05 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
督导岗位职责范本
2015/04/10 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android