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 json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
PHP SPL标准库之接口(Interface)详解
May 11 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
TP5框架实现的数据库备份功能示例
Apr 05 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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版微信公众平台红包API
2015/04/02 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
template.js前端模板引擎使用详解
2017/10/10 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
Python常用的json标准库
2019/02/19 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
小学生打架检讨书
2014/01/26 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
食品采购员岗位职责
2014/04/14 职场文书
廉洁校园实施方案
2014/05/25 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python