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
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
php include的妙用,实现路径加密
Jul 29 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 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程序--记数器
2006/10/09 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
一个实用的php验证码类
2017/07/06 PHP
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
Python实现的归并排序算法示例
2017/11/21 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
家具促销活动方案
2014/02/16 职场文书
骨干教师考核方案
2014/05/09 职场文书
消防安全宣传口号
2014/06/10 职场文书
奶茶店创业计划书
2014/08/14 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
护士个人年度总结范文
2015/02/13 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
入党申请书怎么写?
2019/06/21 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
如何Python使用re模块实现okenizer
2022/04/30 Python