位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享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实现的"顶"和"踩"投票功能

  • 应纳税额等于已缴税额
  • 建筑企业开票都开什么
  • 认证不过的进项税调出分录
  • 增值税开票金额最大多少
  • 普通发票作废要交税吗
  • 企业发生劳动仲裁还可以进行融资吗
  • 应收账款坏账损失专项报告
  • 进口代收业务
  • 商标转让所需要的材料
  • 出口增值税发票金额怎么开
  • 未分配利润应该在借方还是贷方??
  • 增值税免税收入汇算清缴的时候填哪
  • 房产税怎么计算的
  • 增值税科目设置的凭证处理方面的特殊要求
  • 环境保护税法什么时候出台
  • 投资者减除费用可以填0吗
  • 购进货物作为优秀员工的奖励是否可以进项抵扣?
  • 销售,购买
  • 关于医疗服务质量的医疗服务要素
  • 免税更正申报
  • 个税当月计提还是下月
  • 营业外支出用什么账户
  • 2021年购买车辆的进项税能抵扣吗
  • 软件行业服务费印花税
  • 增值税发票小数点后面小数不能打印
  • 营业外收入怎么开票能开吗
  • 删除文件需要管理员权限无法添加怎么办
  • win10电脑和win7电脑怎么共享文件
  • 进项税大于销项税会计分录月末
  • 借条丢了怎么办打电话给家长
  • win7纯净版系统官网
  • 其他应付款怎么平账
  • 广告费和业务宣传费税前扣除基数
  • 不动产司法拍卖税费
  • 增值税留抵抵欠流程
  • php自定义表单系统
  • php导出大量数据
  • nvme安装win10教程
  • 保险公司应收保费汇报范文
  • 印花税申报一直显示办理中什么意思
  • 小规模所得税申报表利润总额是填季报吗
  • 出差补贴是额外的吗
  • 报表中的盈余公积怎么算
  • MySQL Proxy的安装及基本命令使用教程
  • php网站根目录
  • 增值税进项加计抵减怎么计算
  • 成立一般纳税人公司流程
  • 金税盘一天可以开多少张发票
  • SQL Server中使用的SQL是
  • 定额发票已验旧怎么办
  • 预付房租摊销从哪月算起
  • 待抵扣进项税如何在营运资金
  • 减免税需要纳税申报吗
  • 递延税款科目怎样使用
  • 外经证报验登记流程
  • 固定资产以提足金为准吗
  • 人工安装费是几个点税税率
  • 销售费用怎么考核
  • 先开票后发货是什么意思
  • 公司房租收据可以入账吗
  • 商业企业采购商品会计分录
  • mysql性能极限
  • sql语句训练题及答案
  • windowssys
  • win8的VPN连接报942错误(xp、win7下均可使用)
  • win8电脑锁屏时间怎么设置方法
  • window.location.href用法
  • 使用jquery的步骤
  • 浅谈python
  • windows pytorch
  • android录音软件
  • unity3d物体移动代码
  • 基于python的
  • javascript点击按钮改变字体颜色
  • JavaScript函数中,哪个语句可以返回值
  • python3中raw_input的用法
  • 辽宁省国家税务总局
  • 天津税务局发票查询
  • 有限公司怎么交五险
  • 二手房个税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设