php - Laravel api分页指定页面
问题描述
我在 url 中使用 perPage 和 page 发送我的请求。那是
url = users?page=0&perPage=10 //the get http url
所以我想对我的模型请求进行分页,并指定 page 和 perPage
User::paginate()
所以查看文档我看到我可以添加 perPage 但我看不到如何添加页面。所以从laravel 文档中我看到你可以添加perPage
User::paginate($request->get('perPage')) //perPage from url request
但是现在我如何将页面参数添加到分页中,这样我就可以指定页面值,例如 0
我该如何进行?
我也检查了这个问题,但它没有显示如何在一个雄辩的模型分页中设置它
解决方案
Illuminate/Database/Eloquent/Builder中的paginate
方法具有以下签名:
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
只要page=n
您的 url(查询字符串)中有一个 (n for number > 0, ie: page=2),您就不需要在paginate
方法中传递页码。如果你想要的话,你可以使用类似下面的东西来做:
$users = User::paginate(
10, // per page (may be get it from request)
['*'], // columns to select from table (default *, means all fields)
'page', // page name that holds the page number in the query string
10 // current page, default 1
);
仅供参考, 使用Illuminate/Pagination/AbstractPaginator::Laravel
resolverCurrentPage 方法解析当前页面,该方法(解析器)在注册服务提供者时在Illuminate/Pagination/PaginationServiceProvider::currentPageResolver方法中设置。
如果您不知道,您也可以省略,perPage
因为默认情况下Laravel
按记录分块15
,它是在基本模型中设置的,您可以使用以下方法在模型中覆盖它:
protected $perPage = 10;
所以,你可以使用User::paginate()
which 会给你10
items/perPage。
注意:给出了 api 链接,5.6
但在这种情况下(AFAIK)在更高版本中是相同的。
推荐阅读
- javac - Java 类型推断失败:
不是功能接口 - c# - 如何在 C# 中将文件/文件路径从一个 Button_Click 事件传递到另一个事件?
- javascript - 收藏夹的本地存储列表
- php - 文章标题在 foreach 循环中多次显示
- spring-boot - Spring Data Rest 模块 2.1.3 和 Swagger 2.9.2 导致问题
- java - Java将带有文件和结构的子目录移动到父目录
- jquery - 将元素悬停在其他元素上
- ajax - KeyCloak 在 HTTP OPTIONS 请求上返回 HTTP 204
- office-ui-fabric - 为什么复选框文本不使用主题字体大小?
- python - python中的回调字典