在加载网站素材资源时候:且还是滚动加载的情况;
使用 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 还有些参数可以定义