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 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
php算法实例分享
Jul 14 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
需要发散思维学习PHP
2009/06/29 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
Jquery 扩展方法
2010/05/06 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
python 多线程应用介绍
2012/12/19 Python
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python函数调用追踪实现代码
2020/11/27 Python
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
教育合作协议范本
2014/10/17 职场文书
信访维稳工作汇报
2014/10/27 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android