Laravel分页:如何接收前端传入的page参数实现分页
解决Laravel分页中page参数的接入问题
嘿,这问题其实很好搞定!首先得提醒你一个小细节:你的控制器方法里没注入Request实例,这样$request->paginator其实是会报错的(可能你实际代码里有,但贴出来的时候漏了?)。接下来咱们把page参数也顺畅整合进去:
Laravel的paginate()方法支持四个参数,顺序是:
- 每页条数(perPage)
- 要查询的字段(columns,默认是
['*']) - 页码参数的名称(pageName,默认是
page) - 当前页码(page)
给你修改好的控制器代码,带注释更清晰:
use Illuminate\Http\Request; class UserController extends Controller{ public function index(Request $request){ // 从请求中取参数,同时设置默认值,防止前端没传参时接口报错 $perPage = $request->input('paginator', 10); $currentPage = $request->input('page', 1); // 调用paginate,明确指定每页条数和当前页码 return User::paginate($perPage, ['*'], 'page', $currentPage); } }
甚至还能更简单——因为你的页码参数名刚好是Laravel默认的page,所以只要正确注入Request,直接传每页条数就会自动识别page参数:
use Illuminate\Http\Request; class UserController extends Controller{ public function index(Request $request){ $perPage = $request->input('paginator', 10); return User::paginate($perPage); } }
这时候Laravel会自动从请求里读取page参数来确定当前页码,是不是超省心?另外给参数加默认值的操作很重要,能避免前端漏传参数时接口直接崩掉。
内容的提问来源于stack exchange,提问作者Geoff
相关产品推荐
相关产品推荐

