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
Email+URL的判断和自动转换函数
Oct 09 PHP
信用卡效验程序
Oct 09 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
yii2多图上传组件的使用教程
May 10 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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封装的数据库保存session功能类
2016/07/11 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python远程登录代码
2008/04/29 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
python字符串查找函数的用法详解
2019/07/08 Python
Django框架视图函数设计示例
2019/07/29 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
工地门卫岗位职责
2013/12/30 职场文书
二人合伙经营协议书
2014/09/13 职场文书
科技活动总结范文
2015/05/11 职场文书
红色电影观后感
2015/06/18 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
Mysql基础知识点汇总
2021/05/26 MySQL
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android