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 相关文章推荐
20个PHP常用类库小结
Sep 11 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
php合并数组中相同元素的方法
Nov 13 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
你应该知道PHP浮点数知识
May 13 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
Laravel5.1 框架路由基础详解
Jan 04 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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转成EXE文件
2006/10/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php生成excel文件的简单方法
2014/02/08 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python的pip安装以及使用教程
2018/09/18 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
老生常谈python中的重载
2018/11/11 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
Python中包的用法及安装
2020/02/11 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
Shein英国:女性时尚网上商店
2019/04/10 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
食品质检员岗位职责
2015/04/08 职场文书
合理化建议书范文
2015/09/14 职场文书
一条慢SQL语句引发的改造之路
2022/03/16 MySQL