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+javascript模拟Matrix画面
Oct 09 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
PHP验证码生成原理和实现
Jan 24 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP进程通信基础之信号
2017/02/19 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
对pandas中to_dict的用法详解
2018/06/05 Python
python主线程捕获子线程的方法
2018/06/17 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
Weblogic的布署方式
2013/08/23 面试题
财务人员个人自荐信范文
2013/09/26 职场文书
求职自荐书范文
2013/12/04 职场文书
中学运动会广播稿
2014/01/19 职场文书
质量承诺书格式
2014/05/20 职场文书
工作收入证明模板
2014/10/10 职场文书
远程教育培训心得体会
2016/01/09 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang