位置: 编程技术 - 正文

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

  • 补贴收入是否缴税
  • 支付宝商户服务电话
  • 公司月底做账大约几天
  • 家属机票怎么办理
  • 成本和费用的区别在于()
  • 公司报销专用发票
  • 回拨工费经费怎么做会计分录?
  • 过期的增值税发票能用吗
  • 增值税报表附表三如何填写
  • 企业注销前注册资本必须到账吗
  • 商品流通企业采购商品的进货费用金额较小的
  • 安置房税金如何交
  • 电子发票没有发票号码是怎么回事
  • 苹果双系统不小心删了苹果系统
  • win10专业版版本号2009
  • 车辆购置税会计科目怎么做账
  • 农业合作社零申报流程
  • 实收资本怎么用
  • win10任务栏快捷图标不见了
  • 电脑bios错误怎么办
  • 进口应税消费品的组成计税价格公式
  • 结转存货的成本叫什么
  • 闭包csdn
  • 从性能方面考虑的因素
  • php://filter协议
  • 已开票未收款怎么做账
  • 贷款损失准备是什么科目借贷方向
  • wordpress自定义api
  • 无形资产使用寿命不确定需要摊销吗
  • Yii2超好用的日期和时间组件(值得收藏)
  • php操作mysql数据库
  • 树莓派能干什么
  • 收到银行开的手续费发票怎么做分录
  • 缴纳医疗保险费会计分录
  • uni-app入门到实战 以项目为导向
  • 工商银行代发工资多久到账
  • 取得经营所得的个人,有综合所得的是什么意思
  • Python中自定义异常
  • 织梦设置的关键词看不到
  • 发票未及时开,但是双方会计已经做帐,怎么办?
  • 应收账款无法收回会计分录
  • 设备安装业绩
  • 运费不支付会怎么样
  • 收到政府补贴如何做帐
  • 分支机构与总机构怎么纳税?
  • 怎么冲减多计提的增值税
  • 电子承兑汇票怎么查询
  • 银行扣的账户管理费属于什么科目
  • 签合同付款
  • 收到进项发票不认证抵扣的会计分录
  • 电梯在固定资产里属于什么设备类别
  • sql基本教程
  • airdrop怎么用?
  • win8系统怎么关闭自动更新系统
  • win10播放视频的软件
  • pacis.exe - pacis是什么进程 有什么用
  • win7怎么保留文件升级到win10系统
  • win10系统打开安装程序没反应
  • win10登陆背景修改器
  • cocos2dx游戏案例
  • js实现功能
  • 如何制作批处理
  • css 之 background-position-x
  • node. js教程
  • 计算机入域怎么操作
  • 如何使用css设置元素的层叠效果?
  • node.js 生成pdf
  • android内存泄露监测
  • 增强现实的三个特征
  • javascript的dom
  • 安卓手机启用暴露通知
  • unity接收数据
  • 大学生活最后的日子
  • python3 cookie
  • android 数据库
  • 四川召开延迟退休座谈会
  • 陕西国税电子税务局app
  • 汽车契税和购置税一样吗
  • 天津国税发票查询真伪查询
  • 为什么国家要收房产税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设