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 相关文章推荐
一个MYSQL操作类
Nov 16 PHP
PHP 表单提交给自己
Jul 24 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 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 XML操作类DOMDocument
2009/12/16 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python 中 Meta Classes详解
2016/02/13 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
Python字符串的一些操作方法总结
2019/06/10 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
详解python程序中的多任务
2020/09/16 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
python爬虫---requests库的用法详解
2020/09/28 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
python unichr函数知识点总结
2020/12/16 Python
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
教师实习自我鉴定
2013/12/11 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
项目采购员岗位职责
2014/04/15 职场文书
说明书格式及范文
2014/05/07 职场文书
中国梦团日活动总结
2014/07/07 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书