php - Laravel api分页指定页面

标签 php laravel

我在 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 因为默认情况下 Laravel15 记录组成 block 并且它已设置在基础模型中,您可以使用以下方法在您的模型中覆盖它:

protected $perPage = 10;

因此,您可以只使用 User::paginate(),这将为您提供 10 个项目/每页。

注意:api 链接是为 5.6 提供的,但在这种情况下它在更高版本中是相同的 (AFAIK)。

关于php - Laravel api分页指定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517666/

相关文章:

php - 如何创建一个新列包含 id 列的散列

php - CakePHP - 导航到页面时的空白页面

php - { } 标记在 echo "{$e->getMessage()}"

laravel - 没有名为 `admin` 的角色。拉拉维尔

PHP fatal error : Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes)

php - Laravel中基于表单输入的Mysql查询

php - 用于 pi_getLL 的 TYPO3 Extbase 代码?

php - 试图在 html 表中显示 SQL 数据

php - laravel - 调用数组的成员函数 map()

laravel - 使用 Laravel FCM 向设备和 Web 浏览器发送推送通知