位置: 编程技术 - 正文

PHP框架Laravel插件Pagination实现自定义分页(php框架怎么用)

发布时间:2024-01-14

推荐整理分享PHP框架Laravel插件Pagination实现自定义分页(php框架怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php框架yii,phpstorm laravel,phpstudy安装laravel框架,php框架怎么用,phpstudy安装laravel框架,phpstudy安装laravel框架,laravel入门与实战:构建主流php应用开发框架,php laravel框架 新手教程,内容如对您有帮助,希望把文章链接给更多的朋友!

Laravel 的分页很方便,其实扩展起来也挺容易的,下面就来做个示例,扩展一下 paginate() 和 simplePaginate() 方法,来实现我们自定义分页样式,比如显示 "上一页" 和 "下一页" ,而不是 "《" 和 "》" ,当然扩展的方法掌握了你就可以肆无忌惮的扩展一个你想要的分页了,比如跳转到某一页,分页显示一共多少记录,当前显示的记录范围等等巴拉巴拉的。。。

5.1和5.2应该是同样的方法,我这里用的是5.2的版本。文档告诉我们 Paginator 对应于查询语句构造器和 Eloquent 的 simplePaginate 方法,而 LengthAwarePaginator 则等同于 paginate 方法。那我们还是来看下源码,具体这个 paginate 是如何实现 render() 的,

Illuminate/Pagination/LengthAwarePaginator.php

render() 中传入的是一个 Presenter 的实例,并调用这个实例化的 render 方法来实现分页的显示的。如果没有则调用 BootstrapThreePresenter 中 render() 的,来看看 BootstrapThreePresenter 是干嘛的

Illuminate/Pagination/BootstrapThreePresenter.php

这里可以看到 BootstrapThreePresenter 实现了 PresenterContract 的接口, render() 才是分页显示的真正实现,构造方法中的第一个参数 PaginatorContract 其实就是一个 Paginator 我们继续看下 PresenterContract 也就是 Presenter 接口中定义了什么方法需要实现

illuminate/contracts/Pagination/Presenter.php

其中定义了 render 和 hasPages 方法需要实现

好了,那我们现在已经很清晰了,我们要自定义分页的显示,那么就要写一个我们自己的 Presenter 来实现接口中的 render() 和 hasPages() 就可以了。

PHP框架Laravel插件Pagination实现自定义分页(php框架怎么用)

首先就来简单的实现一个paginate(),显示出来"上一页"和"下一页",中间是分页数字的例子。

新建文件如下(个人习惯)

app/Foundations/Pagination/CustomerPresenter.php

就这么简单,主要就是 render() 方法,如果项目中需要修改分页样式,或者添加分页跳转之类的需求只要重写其中的各项显示的方法中的html元素就可以了,很灵活,在blade模板中也需要修该,比如我们的 Paginator 叫 $users ,默认的分页显示是这样的:

{!! $users->render() !!}修改成我们自定义后的分页显示:

{!! with(new AppFoundationsPaginationCustomerPresenter($categories))->render() !!}好了,这样在页面应该就可以看到分页链接中含有 "上一页"和"下一页"加数字的样式了。

那么如果扩展simplePaginate&#;其实很简单,只要继承刚才的 CustomerPresenter ,实现 hasPages 和 render ,至于为什么可以按照我上面查看源码的方式看一下就知道了,比如我们改成"上一篇"和"下一篇"

新建AppFoundationsPaginationCustomerSimplePresenter.php

分页显示:

{!! with(new AppFoundationsPaginationCustomerSimplePresenter($categories))->render() !!}

方法就是这个方法,具体修改按照自己需求重写其中对应的显示html元素的方法就可以了。

转载请注明:转载自 Ryan是菜鸟 | LNMP技术栈笔记

标签: php框架怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/295397.html 转载请保留说明!

上一篇:屏蔽PHP默认设置中的Notice警告的方法(php屏蔽错误)

下一篇:PHP+MySql+jQuery实现的"顶"和"踩"投票功能

  • 个税返还手续费增值税申报填在哪里
  • 公司合同是公司员工个人名义签订如何入账?
  • 小规模企业所得税计算
  • 教育培训行业税负率是多少
  • 电子承兑汇票贴现流程
  • 小规模免税销售额是含税还是不含税
  • 申报附加税增加一行如何增加
  • 2021年金税盘
  • 餐饮企业销售外购食品 增值税税率cpa
  • 房地产企业拆迁补偿契税政策
  • 所得税弥补以前的利润
  • 事业支出期末如何结转?
  • 付给农民的扶贫款企业如何做账?
  • 税控盘产生的费用可以抵扣吗
  • 有效期起止时间段与已有备案有效期有交集
  • 借钱注册公司会计分录
  • 第二季度的利润表报错了,怎么重新报
  • 挑主板要注意什么
  • macbook上安装windows10
  • 如何不同版本复制粘贴
  • linux sl
  • scheduler.exe - scheduler是什么进程 有何作用
  • dc.exe 病毒
  • 存货分类账目录填写样本图片
  • 长期借款的业务处理
  • 进程查看工具
  • 羊肚菌的功效和价格
  • 周转材料摊销是什么科目
  • 关于坏账准备的论文
  • 金融业的特殊性指的是
  • 共轭梯度法matlab代码
  • RTX 4090深度学习性能实测奉上!模型训练可提升60~80%
  • 预算周转金会计处理怎么做
  • 前端底层架构是什么意思
  • 指令获取
  • 增值税直接减免税额要交企业所得税吗
  • 建筑行业预交增值税怎么结转
  • css设置英文词距
  • 4s店除了卖车还有什么
  • 低值易耗品指的价格
  • 小规模纳税人企业所得税2023
  • 防伪开票系统打不开
  • 消费税纳税人的具体纳税期限由主管税务机关
  • 研发费用加计扣除的条件
  • 纳税实务的涉税业务分几类
  • 应收账款的账期是什么意思
  • 财务报表现金流量表怎么填
  • 建筑工程劳务分包合同范本2019
  • 跨两年的发票可以冲红吗
  • 发票分割单使用范围
  • 生产能量等于什么
  • 建筑业简易征收税率5%
  • 增值税税控系统专用设备费及技术维护费抵扣
  • 会计计量属性是什么意思
  • mysql日期和时间函数
  • CentOS7 64位安装mysql图文教程
  • 请问linux
  • windows8.
  • 电脑网络唤醒功能
  • win8操作系统安装
  • shpc32.exe - shpc32是什么进程 有什么用
  • win7出现蓝屏怎么办
  • linux系统的配置
  • win7右下角时间怎么显示年月日
  • jquery 滑块
  • python lxml解析xml
  • jquery jsonview
  • js键盘事件有哪些?各自的作用如何
  • tiles框架
  • unity中time.deltatime
  • javascript可以做动态网页吗
  • Android 仿 iphone 自定义滚动选择器
  • 详解16型人格
  • js使用类
  • python3连接pg执行命令
  • android学什么
  • 广东省地方税务局历任局长
  • 养老专业在职研究生好吗
  • 税务一般纳税人可以简易注销
  • 我各位一个关于网上申报增值税所得税的申报流
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号