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作的文本留言本的例子(一)
Oct 09 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
angularjs中的单元测试实例
2014/12/06 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
2014年幼儿园植树节活动方案
2014/03/02 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers