位置: 编程技术 - 正文

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

  • 个人怎么缴纳印花税
  • 印花税入什么科目核算成本
  • 增值税附加税的会计处理
  • 往来差异一般原因有哪些
  • 增值税发票注明金额是含税还是不含税
  • 汇算清缴所得税补缴怎么处理
  • 资产负债表负债总额怎么看
  • 2019小规模纳税人税率
  • 同一控制下企业合并报表编制
  • 专用凭证和通用凭证的联系和区别
  • 厂房无偿租赁合同
  • 销售人员出差补助计入什么科目
  • 对赌协议补偿款计入哪个科目
  • 质检实验室布局
  • 出口货物的进项发票什么时候认证
  • 客户预付货款会计分录
  • 跨年的预付账款如何冲销
  • 公司账上的应收账款余额变为负数涉及什么税?
  • 专票打印的时候密码区压线了能用吗
  • 作废的发票怎么处理
  • 补记以前年度收入在报表中怎么处理
  • 安装工程发票怎么开
  • 进项税转出月底怎么处理
  • 所有者权益与所有者权益合计
  • 应收账款坏账准备计算表
  • 递延所得税资产和负债怎么理解
  • 电话费发票个人抬头可以税前扣除
  • 选择简易征收可以开专票吗
  • 一般纳税人资格证明在哪里开具
  • 产品配件属于什么会计科目
  • 笔记本电池怎么换
  • 其他货币资金期末处理
  • php使用内置函数的过程
  • u8销售类型怎么设置
  • 物流中的代收货款是什么意思
  • 广告费和业务宣传费调增还是调减
  • 销售滞后税务处理
  • 工商年报中营业费用包括
  • 普通发票的开票规定
  • axios在vue中的使用慕课笔记
  • php访问数据库的方式
  • 残疾人保障金工资总额包括年终奖吗
  • 饿了么指定单
  • cssschool
  • python设置配置文件
  • python累加求和代码,直到最后一项小于10^-6
  • 本年利润是净利润吗
  • phpcms怎么用
  • 企业所得税季报是填累计数吗
  • 合同印花税可以年底报一次
  • python的series
  • 物业公司的会计好干吗
  • 电子承兑汇票承兑后几天到账
  • 工商年报纳税总额包括个人所得税吗
  • 进出口贸易出纳主要做什么
  • 公司投资款如何返还给股东
  • 法人和税务可以是一个人吗
  • 境外个人给境内个人汇款什么名义申报
  • 市场开发费用会计分录
  • 未分配利润是不是净利润的意思
  • 留抵税额和待抵扣进项税额区别
  • 销售费用变动率是看本期还是本年累计
  • 资产减值损失是借增贷减吗
  • 华硕p8h61主板升级cpu
  • xp系统的程序和功能在哪里
  • hpl是什么文件
  • win7 esd安装文件怎么安装教程
  • win7共享文件夹关闭密码保护
  • xp系统没无线网络连接怎么办
  • virtualbox 虚拟化
  • 第二次约会聊天没多少可以聊的,经常冷场
  • 什么是馥芮白
  • dos替换文件命令
  • unity3d怎么写代码
  • android网络请求时怎么取消
  • 磁盘监视器在哪
  • 批处理文件可用记事本
  • 如何利用python写爬虫
  • 电脑有网为什么不能用
  • 山东省地方税务局公告2018年第6号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设