我在 url 中发送带有 perPage 和 page 的请求。那就是
url = users?page=0&perPage=10 //the get http url
所以我想对我的模型请求进行分页,并指定 page 和 perPage
User::paginate()
所以在文档中我看到我可以添加 perPage 但我看不到如何添加页面。所以来自laravel documentation我看到你可以像这样添加 perPage
User::paginate($request->get('perPage')) //perPage from url request
但是现在我如何将页面参数添加到分页,这样我就可以指定像 0 这样的页面值
我该如何进行?
我还查看了 This question但它没有显示如何在 Eloquent 模型分页中设置它
最佳答案
Illuminate/Database/Eloquent/Builder 中的 paginate
方法具有以下签名:
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
只要您的 url(查询字符串)中有 page=n
(n 表示数字 > 0,即: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
);
仅供引用,Laravel
使用 Illuminate/Pagination/AbstractPaginator:: resolveCurrentPage 解析当前页面在 Illuminate/Pagination/PaginationServiceProvider:: currentPageResolver 中设置(解析器)的方法注册服务提供商时的方法。
如果您不知道,您也可以省略 perPage
因为默认情况下 Laravel
由 15
记录组成 block 并且它已设置在基础模型中,您可以使用以下方法在您的模型中覆盖它:
protected $perPage = 10;
因此,您可以只使用 User::paginate()
,这将为您提供 10
个项目/每页。
注意:api 链接是为 5.6
提供的,但在这种情况下它在更高版本中是相同的 (AFAIK)。
关于php - Laravel api分页指定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517666/