位置: 编程技术 - 正文

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实现的"顶"和"踩"投票功能

  • 跨境电商小规模好还是一般纳税好
  • 增值税开票软件口令锁定怎么办
  • 城建税计算方法有哪些
  • 非税收入票据可以手写吗
  • 中级会计实务主观题
  • 企业接受捐赠固定资产计入什么科目
  • 货物或应税劳务服务名称怎么填
  • 企业级软件开发
  • 企业如何实现合理利润
  • 那些情况可以申请退税
  • 租赁的房子
  • 怎么不用关税
  • 增值税10000交多少税
  • 外贸 内销
  • 学校有税号可以收专票吗
  • 拍卖中,必须规定一切税费由买受人承担吗?
  • 交税四舍五入差额怎么处理
  • 债转股需不需要交税
  • 累计折旧余额怎样结转
  • 供应商退回货款有时间限制吗
  • 固定资产的残值怎么算出来的
  • 银行承兑汇票怎么取钱
  • 评估资产没有发票和流水怎么办
  • 个人以非货币性资产投资个人所得税
  • 认缴出资未缴纳公司可以减资吗
  • 未开票收入可以不开票吗
  • 营改增建筑业
  • 进口货物如何缴增值税
  • 开票收入怎么理解
  • 企业收到利息收入开发票吗
  • 打英文字母突然没声音了
  • 公司收到拆迁补偿款要交税吗
  • wordpress文章缩略图
  • Win10 (21H1)Build 19043.1266更新补丁KB5005611正式版发布:附修复更新内容
  • 金融企业贷款逾期怎么办
  • 公司收到供应商退款会计分录
  • 企业转让要收多少费用
  • 如何开增值税专用发票步骤图解
  • 在大运河上举办什么活动
  • XHProf报告字段含义的解析
  • 手续费及佣金收入会计分录
  • 公司收到财政补贴款的会计分录
  • php获取数据
  • html编写
  • hadoop java
  • opencv实战项目教程
  • 企业所得税的征税对象包括( )
  • 费用化支出期末一般转入哪个账户?
  • 淘宝天猫开票是普票还是专票
  • sqlserver使用awe分配内存
  • 已经提完折旧的房产价值评估
  • 未开票收入缴纳增值税吗
  • mongodb reactive
  • 建筑安装印花
  • 政府补助计入哪个会计科目
  • 低值易耗工具有哪些
  • 自产货物用于在建工程账务处理
  • 外经证的办理流程
  • 财务报表是否合法公允
  • 可持续增长率和内部增长率的区别
  • 确认收入一定要交增值税吗
  • 统计会计主要做什么
  • 建账的依据是什么
  • 无光驱无u盘重装系统
  • win10预览版和正式版区别
  • xp系统怎么关闭fn
  • win8系统修改密码
  • win7定时静音
  • WIN10系统优化精简工具
  • perl编程
  • perl子函数
  • chrome heat
  • shell 比较大小
  • javascript Math.random()随机数函数
  • python放歌
  • python中fd
  • 社保申报后多久缴费
  • 扬州税务学院住宿环境
  • 增值税发票勾选操作流程
  • 武汉市江汉区财政局这个单位的公务员待遇怎么样?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设