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 相关文章推荐
如何开发一个虚拟域名系统
Oct 09 PHP
php过滤危险html代码
Aug 18 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php分页示例分享
Apr 30 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
php将金额数字转化为中文大写
Jul 09 PHP
PHPExcel笔记, mpdf导出
May 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
动易数据转成dedecms的php程序
2007/04/07 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
python 运算符 供重载参考
2009/06/11 Python
python连接mysql并提交mysql事务示例
2014/03/05 Python
python常用函数详解
2016/09/13 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python 读取串口数据的示例
2020/11/09 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
社会治安综合治理管理责任书
2014/04/16 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
高考标语大全
2014/06/05 职场文书
导航工程专业自荐信
2014/09/02 职场文书
大学生实训报告总结
2014/11/05 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python