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 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
PHP 实用代码收集
Jan 22 PHP
php Smarty 字符比较代码
Feb 27 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
zend framework中使用memcache的方法
Mar 04 PHP
Laravel5中Cookie的使用详解
May 03 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 PHP
详解PHP设计模式之依赖注入模式
May 25 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中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
利用JS实现数字增长
2016/07/28 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
Python中的with...as用法介绍
2015/05/28 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
Python气泡提示与标签的实现
2020/04/01 Python
如何用python处理excel表格
2020/06/09 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
初中生物教学反思
2014/01/10 职场文书
心理健康教育制度
2014/01/27 职场文书
团代会宣传工作方案
2014/05/08 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
党校学习党性分析材料
2014/12/19 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
Python保存并浏览用户的历史记录
2022/04/29 Python