【问题标题】:How to get page 2 from paginated records如何从分页记录中获取第 2 页
【发布时间】:2019-10-28 02:20:47
【问题描述】:

进入一个 Laravel Lumen API 项目,我想获取分页记录的第 2 页。但它没有给我任何结果。

$query = DB::table('cars');
$query->paginate(2, ['*'], 'page', 2);
$data = $query->get();

我该如何实现?

感谢您的帮助。

【问题讨论】:

  • 可能是您的汽车表的计数 === 2 或更少,因此它只有第一页
  • 没有 $records = $query->count();显示 218
  • 检查我的答案
  • 您可以使用页码作为查询参数从特定页面获取记录,当然是在对项目进行分页之后

标签: laravel lumen


【解决方案1】:

你可以自己的代码

将表添加到构建器实例

$query = DB::table('cars'); 看起来不错

为构建器分页

$query->paginate(2, ['*'], 'page', 2); 看起来不错

但你可以你没有使用 prevoius 方法更改,因此将应用分页但你无法访问

$paginated = $query->paginate(2, ['*'], 'page', 2); 可以正常工作

已编辑

正如你所说,记录中没有变化,因为你已经硬编码了页码

所以

$paginated = $query->paginate(2, ['*'], 'page'); 会完美运行

从函数中删除最后一个参数2之后

现在 $paginated 将给出 LengthAwarePaginatorInstance

所以你需要将$paginated 传递给Json

希望清楚

【讨论】:

  • 我明白了。我用第 1 页和第 2 页对其进行了硬编码,它可以工作。现在我试图从参数使它动态化。 $limit = (Input::get('limit') ? Input::get('limit') : '10'); $page = (Input::get('page') ? Input::get('page') : 1); $paginated = $query->paginate($limit, ['*'], 'page', $page); {{domain-url}}/api/v1/cars?limit=10&page=2 但这不起作用。
【解决方案2】:

Lumen 中的分页应该和 Laravel 一样工作。

根据文档https://laravel.com/docs/5.8/pagination#basic-usage

要获取分页结果的任何页码,请将 send ?page 查询字符串参数设置为您要检索的页面。

【讨论】:

    【解决方案3】:

    要在 Lumen/Laravel 中对记录进行分页,只需使用 paginate() 函数。它接受页码作为查询参数,你不需要明确定义。

    另外,您不需要将->get()paginate() 添加。

    // 对于第二页,url 为:

    http://example.com/something?page=2 
    

    // 分页器代码如下

    $data = DB::table('cars')->paginate(2);
    

    这里的参数(2)代表限制-要显示的记录数。

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多