位置: 编程技术 - 正文

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万怎么做账
  • 合伙企业转让股权如何缴税
  • 预缴增值税需要预缴附加税吗
  • 一般纳税人租赁费税率5%是简易征收吗?
  • 税金及附加与应交税费的差额
  • 暂存凭证怎么改成记字
  • 公司只有一个人可以不交社保吗
  • 什么样的情况可以补缴社保
  • 垫付的医疗费保险多久可以报销
  • 某公司是一家刚成立的大型化妆品生产企业
  • 购买的固定资产没有使用,是否计提折旧
  • 政府扶持资金科目怎么做?
  • 当月发票已认证还能作废吗
  • 增值税发票没有地址和开户行有效吗
  • 提前退休取得的一次性补贴收入
  • 发放年终奖计提需要调减利润吗
  • 如何区分纳税人和小规模纳税人
  • 个人利息收入交不交增值税
  • 工厂生产的配件怎么入账
  • 生育津贴有什么作用
  • 冲销暂估成本如何写摘要?
  • 年底分红如何计税
  • 工商注销债务承担
  • 苹果14promax最新版本16.6
  • 员工宿舍水电费计入什么会计科目
  • 腾讯手游助手如何隐藏键位
  • PHP中使用全局变量来接受表单中提交的数据
  • 笔记本cpu排行天梯
  • linux 文件夹压缩
  • PHP:mb_strimwidth()的用法_mbstring函数
  • PHP:session_unset()的用法_Session函数
  • PHP:curl_multi_info_read()的用法_cURL函数
  • php字段
  • linux如何配置ssh
  • vue怎么让按键启用和禁用
  • 个人所得税申报流程图
  • php调用变量的符号
  • 为什么说网络安全靠人民
  • php怎么定义全局变量
  • 已认证未抵扣完的进项
  • 燃油税税率是多少
  • mysql底层是什么
  • 公司清算的特征
  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法
  • sqlserver2005导出数据
  • 新会计准则计提减值准备
  • 其他应收款科目代码
  • 固定资产核销是资产损失吗
  • 总记账凭证核算怎么做
  • 年底进项比销项大要做账么
  • 政府补助的分类及会计处理方法有哪些
  • 电子发票已开出客户退款会计处理是怎样的?
  • 账外房屋按评估值入账怎么进行会计处理
  • 在记账过程中,可能发生各种各样的差错
  • win7系统双击不能打开我的电脑
  • 如何在ubuntu下安装和配置gcc并用C语言
  • gitlab linux
  • windows缓存写入失败,数据怎么找回
  • macbookpro登陆
  • 微软新品什么时候上市
  • Win8.1不借助第三方软件怎么给文件夹加密并隐藏
  • store与storage的区别
  • nodejs实现文件压缩下载
  • virtualbox装linux
  • 安卓 分包解压
  • js函数详解
  • css网站布局实录
  • windows下安装nas
  • 多了一个本地磁盘
  • nodejs eventloop
  • js点击表格行获取当前行信息
  • javascript入门基础
  • android.view.window.addflags
  • js函数详解
  • 个体税务怎么查询
  • 投资联营的房产税纳税人是谁
  • 允许抵扣和不允许抵扣进项税额的发票种类
  • 转卖车辆车船税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设