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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP 对象接口简单实现方法示例
Apr 13 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新手上路(六)
2006/10/09 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
深入分析php之面向对象
2013/05/15 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
Python定时执行之Timer用法示例
2015/05/27 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
python中常用的数据结构介绍
2021/01/12 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
环境建设实施方案
2014/03/14 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
结婚纪念日感言
2015/08/01 职场文书
python 网络编程要点总结
2021/06/18 Python
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL