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中调用JAVA
Oct 09 PHP
PHP获取网卡地址的代码
Apr 09 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
Laravel实现表单提交
May 07 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
php获取excel文件数据
2017/04/21 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
参观监狱心得体会
2014/01/02 职场文书
股权转让协议书范本
2014/04/12 职场文书
青春无悔演讲稿
2014/05/08 职场文书
技术比武方案
2014/05/19 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
外国人来华邀请函
2015/01/31 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript