【问题标题】:Laravel: reverse the result of paginationLaravel:反转分页的结果
【发布时间】:2018-12-14 12:48:05
【问题描述】:

我使用的是 laravel 5.6,我想反转分页查询的结果。这就是我现在想要做的:

$chats = Chats::where('message_id', $message_id)->orderBy('id', 'DESC')->latest()->paginate(5);
if(!empty($chats)) {
    $data['messages'] = $chats->reverse()->values();
    $data['status'] = 200;
    $data['create_user_id'] = Auth::id();
}else{
    $data['error'] = "No chats available";
}

但它会从结果中删除分页。 假设我在表中有这 10 个值

1, 2, 3, 4, 5, 6, 7, 8, 9, 10

现在我希望6, 7, 8, 9, 10 出现在第一页结果中,1, 2, 3, 4, 5 出现在第二页结果中,特别是按照这个顺序。

请帮忙。

【问题讨论】:

  • 为什么不把 ->orderBy('id', 'DESC') 改成 ->orderBy('id', 'ASC')
  • 它又给我带来了最旧的数据。我再次编辑了我的问题以便更好地理解
  • @Ashish 2 年后。您是否设法找到解决方案?或者您必须构建自定义解决方案?

标签: laravel pagination


【解决方案1】:
you can reversed the pagination with latest function.


   $chats = Chats::where('message_id', $message_id)->orderBy('id', 'DESC')->latest()->paginate(20);
if(!empty($chats)) {
    $data['messages'] = $chats->values();
    $data['status'] = 200;
    $data['create_user_id'] = Auth::id();
}else{
    $data['error'] = "No chats available";
}

删除 reverse(),因为 latest() 给出了 reverse()。

【讨论】:

  • 我再次编辑了我的问题以便更好地理解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
  • 2017-02-24
  • 2015-07-17
  • 2017-01-12
  • 2013-01-30
  • 1970-01-01
相关资源
最近更新 更多