位置: 编程技术 - 正文

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

  • 委托加工业务的会计处理
  • 租赁服务增值税税率
  • 残保金季报要填上年职工人数
  • 发现之前的差旅费补助多报了一天该怎么调整
  • 个人去税务局开专票需要提供什么
  • 结转抵扣
  • 银行承兑汇票背书可以拆分
  • 应付款管理参数设置的基本操作流程
  • 委托加工白酒怎么入账
  • 企业所得税汇算清缴账务处理
  • 存货周转率多少好
  • 销售货物的运费增值税计入什么科目
  • 两个公司成立一个新的公司注意事项
  • 银行借款的利息支出属于什么会计要素
  • 母公司名称的发票可以计入子公司的开办费处理吗?
  • 高速公路通行费专用发票可以抵扣吗
  • 小型微利企业所得税减免政策
  • 增值税普通发票怎么开
  • 季度申报所得税是按累计上缴吗
  • 收代扣代缴个税手续费会计分录
  • 合同负债属于什么费用
  • 保户储金科目属于保险公司的什么科目
  • 小规模纳税人开专票不超过30万要交税吗
  • 长期资产的含义
  • 支付给个人的小票怎么写
  • 类似股票期货的产品
  • 处理废料会计分录
  • 债转股是好还是坏
  • linux系统中将加密过的密码放到什么文件中
  • linux 运行php脚本
  • pqv2isvc.exe - pqv2isvc是什么进程 有什么作用
  • wordpress抓取网页
  • 销售退回的会计分录金额
  • 记账凭证的总账科目是什么
  • php面向过程
  • php上传多文件
  • 电子税务局已申报信息查询
  • web-inf lib
  • php和mysql关系
  • 使用灭火器时要对准火焰的什么部位喷射
  • thinkphp codeigniter
  • 苹果系统推送通知
  • 增值税留抵税额退税政策
  • 你要和我一起爬山吗
  • 税号一般多少位数字
  • 软件增值税即征即退网上备案
  • 出租的厂房折旧记哪里
  • MySQL慢查询优化面试问题
  • mongodb视频教程
  • 免税不能抵扣
  • 公司支付宝收款码怎么支持信用卡
  • sql2005备份数据库
  • sql字符串处理函数
  • 以前年度应收账款错误如何调整
  • 结转销售成本的凭证需要附件吗
  • 房地产开发成本和房地产开发产品
  • 差旅费会计科目怎么做
  • 记账凭证摘要的填制要求
  • 房屋租赁费属于变动成本吗
  • 化妆品的成本利润率
  • 产品研发专利
  • 收不回来的应收账款
  • 核定征收也需要报税务报表吗?
  • 培训费产生的差额是什么
  • 房地产企业预付账款会计分录
  • 公司账户美金入账后怎么做分录
  • 废品损失明细账应选择三栏式
  • 本年利润净利润的关系
  • win7出现蓝屏如何解决
  • xp系统如何找到bitlocker
  • windows10电脑声音
  • opengl函数
  • cocos 2d x
  • dos的for用法
  • angularjs1.5
  • javascript异常
  • 安卓自定义app
  • 深圳市税务局网上办税大厅官网
  • 交契税可以用现金吗
  • 浙江省税务局发短信是真的吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设