📅  最后修改于: 2023-12-03 14:48:41.009000             🧑  作者: Mango
在Yii2中,为了方便API开发者获取数据,提供了一个基础控制器yii\rest\Controller
。该控制器中封装了一些通用的数据获取逻辑,其中包括默认的分页逻辑。
默认情况下,yii\rest\Controller
会根据请求参数来确定每页的记录数。通过请求参数 page
和 per-page
,可以控制获取数据的页数和每页的记录数。
例如,当我们想要获取50条记录时,需要在请求头部中添加X-Pagination-Per-Page: 50
,则每页的记录数即为50条。返回的数据会包含一些分页相关的信息,例如总页数、总记录数等,这些信息都在Response Headers中。
GET /users HTTP/1.1
Host: example.com
X-Pagination-Per-Page: 50
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
X-Pagination-Total-Count: 1000
X-Pagination-Page-Count: 20
X-Pagination-Current-Page: 1
X-Pagination-Per-Page: 50
Link: <http://example.com/users?page=1>; rel=self, <http://example.com/users?page=2>; rel=next, <http://example.com/users?page=19>; rel=last
在 Link
中,我们还可以看到各个页面的链接,例如rel=self
表示当前页的链接,rel=next
表示下一页的链接,rel=last
表示最后一页的链接。通过这些链接,我们可以方便地进行分页操作。