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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
PHP四大安全策略
Mar 12 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
npm qs模块使用详解
2020/02/07 Javascript
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
浅析Python 多行匹配模式
2020/07/24 Python
毕业生就业推荐信范文
2013/12/01 职场文书
开业庆典策划方案
2014/02/18 职场文书
交通事故协议书
2014/04/15 职场文书
安全生产承诺书范文
2014/05/22 职场文书
社区服务活动小结
2014/07/08 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
大学生求职自荐信
2015/03/24 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
如何写好活动总结
2019/06/21 职场文书
python实现监听键盘
2021/04/26 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
《废话连篇——致新手》——chinapizza
2022/04/05 无线电