You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel分页机制解惑:如何获取指定页码的数据?

解决Laravel分页的前端请求问题

嘿,别担心,第一次接触分页肯定会有点懵,咱们一步步把这个问题理清楚~

核心结论:用page参数指定页码

Laravel的paginate()方法默认会自动识别URL里的page查询参数,所以你只需要在前端请求时,在URL末尾加上?page=页码就能获取对应页的数据。

比如你要获取第2页,请求URL应该是这样的:

// 假设你的接口地址是 /api/customers/all
/api/customers/all?page=2

为什么不用nextPage(2)?

你之前设想的paginate(15)->nextPage(2)是对方法的误解:

  • paginate(15)已经完成了分页逻辑的处理,它会根据URL中的page参数自动计算偏移量(对应原生SQL的OFFSET)和每页条数(对应LIMIT)。
  • nextPage()是一个判断方法,返回的是布尔值(true/false),用来检查是否存在下一页,而不是用来生成指定页码的数据的。

结合你的代码具体解释

你的控制器代码里,getCustomers()方法用了User::where('col', $value)->paginate(15),这个写法本身就支持分页参数了,不需要修改后端代码:

  1. 当前端不传page参数时,默认返回第1页的数据。
  2. 当前端传?page=2时,Laravel会自动计算:LIMIT 15 OFFSET 15(因为第1页已经取了15条,第2页从第16条开始,对应OFFSET 15)。

利用返回的JSON字段辅助前端逻辑

后端返回的JSON里的这些字段能帮你做前端分页控制:

  • current_page: 当前所在页码
  • last_page: 总页数(如果current_page等于last_page,就说明没有下一页了)
  • per_page: 每页显示的条数
  • from/to: 当前页数据的起始/结束序号

内容的提问来源于stack exchange,提问作者Sylar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:07:35