引言
Yii2中ActiveDataProvider使用的分页参数默认是page和per-page,请求接口的url应为:
/api/module/controller/action?page=1&per-page=20
其中per-page指定每页的数据量,page指定当前请求的页码。
实际开发中,很多前端封装好的框架也会使用默认的分页参数去请求后端接口。比如Antd Pro中页码参数名为current,页容量参数为pageSize,那么如何让Yii2后端接收这两个参数进行分页处理呢
自定义分页参数名
查阅文档后,分页对象Pagination中有这样两个属性:
$pageParam : Name of the parameter storing the current page index.
$pageSizeParam : Name of the parameter storing the page size.
它们的值分别指定页容量、页码的参数名。
后端接口返回的数据是ActiveDataProvider,因此,在初始化ActiveDataProvider时配置如下:
$dataProvider = new ActiveDataProvider([
...
// 前端分页字段
'pagination' => [
'pageSizeParam' => 'pageSize',
'pageParam' => 'current',
],
]);
即可接收前端传递的pageSize和current参数进行分页处理