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
针对初学PHP者的疑难问答(1)
Oct 09 PHP
NOT NULL 和NULL
Jan 15 PHP
PHP日期时间函数的高级应用技巧
May 16 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP中number_format()函数的用法讲解
Apr 08 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
js密码强度校验
2015/11/10 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
写给女朋友的道歉信
2014/01/08 职场文书
爱护公共设施的标语
2014/06/24 职场文书
升国旗演讲稿
2014/09/05 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
2015国庆节宣传语
2015/07/14 职场文书
检讨书范文
2019/04/16 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis