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实现简单洗牌算法
Jun 18 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
学习php中的正则表达式
Aug 17 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
php获取当前页面完整URL地址
Dec 30 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
php通过文件头判断格式的方法
May 28 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
phpstudy后门rce批量利用脚本的实现
Dec 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动态图像的创建
2006/10/09 PHP
mysql 搜索之简单应用
2007/04/27 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP二维数组去重算法
2016/12/17 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
javascript中的this详解
2014/12/08 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
python redis连接 有序集合去重的代码
2019/08/04 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
工程造价专业大专生求职信
2013/10/06 职场文书
打架检讨书100字
2014/01/19 职场文书
家长对小学生的评语
2014/01/28 职场文书
学校消防安全制度
2014/01/30 职场文书
四群教育工作实施方案
2014/03/26 职场文书
《风筝》教学反思
2014/04/10 职场文书
会计求职自荐信范文
2015/03/04 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
深入理解 Golang 的字符串
2022/05/04 Golang
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript