在加载网站素材资源时候:且还是滚动加载的情况;
使用 Fetch POST JSON
形式请求数据
使用游标分页
Material::where(['type'=>'image'])->orderBy('uuid','desc')->cursorPaginate(5);
返回
{
"path": "/image",
"per_page": 5,
"next_cursor": "eyJ1dWlkIjoxMDA2LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"next_page_url": "?cursor=eyJ1dWlkIjoxMDA2LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"prev_cursor": null,
"prev_page_url": null
}
下一页请求:
Material::where(['type'=>'image'])->orderBy('uuid','desc')->cursorPaginate(3, '*', $cursor);
3
每页分页数量*
要返回那些字段$cursor
不是你给他传变量:而是告诉它去 $request->input(NAME)
的NAME
就行了文档还是翻得太少~
在 Model
中 protected $casts = 应该可以定义一些字段
模型中:
getCursorName
可以定义第三个参数
public function getCursorName(): string
{
return 'cursor_other';
}
在 \vendor\illuminate\pagination\AbstractCursorPaginator.php
还有些参数可以定义