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 相关文章推荐
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
深入PHP异步执行的详解
Jun 03 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 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
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
简单介绍Python中的len()函数的使用
2015/04/07 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Tensorflow 实现释放内存
2020/02/03 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
网上蛋糕店创业计划书
2014/01/24 职场文书
服务行业演讲稿
2014/09/02 职场文书
小学生暑假安全公约
2015/07/14 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers