使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页

Posted

技术标签:

【中文标题】使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页【英文标题】:Paginate API response without database (count) with Laravel 5.8 【发布时间】:2019-12-23 17:14:34 【问题描述】:

我正在使用:https://github.com/spatie/laravel-newsletter

控制器

if(Auth::check() && Auth::user()->hasRole('admin'))
  $members = Newsletter::getMembers('subscribers');
  return view('admin.newsletter', ['members' => $members]);
 else 
  return redirect('admin');

查看

@foreach ($members['members'] as $member)
  <tr>
   <td> $member['unique_email_id'] </td>
   <td> $member['email_address'] </td>
   <td> $member['timestamp_opt'] </td>
   <td> $member['last_changed'] </td>
   <td>
     <a href=" url('/newsletter/status') 
      '/' . $member['email_address'] ">
      ucfirst($member['status']) </a>
   </td>
  </tr>
@endforeach

任何人都可以指导我在没有常规内容的情况下对数据响应进行分页->paginate(10);

我无法在 *** 或 Google 上找到具体答案。

谢谢!

【问题讨论】:

【参考方案1】:

getMembers()函数的源码是这样的:

public function getMembers(string $listName = '', array $parameters = [])

    $list = $this->lists->findByName($listName);
    return $this->mailChimp->get("lists/$list->getId()/members", $parameters);

Mailchimp API 文档列出了可选参数 here。

有两个参数用于分页:countoffset

对于我在上面读到的内容,您可以尝试以下方法:

$members = Newsletter::getMembers('subscribers', ['count'=>10, 'offset'=>0]);

根据您的当前页面更改offset,并根据您想要的结果更改count

【讨论】:

@Cameron 你对这个答案有什么反馈吗? 是的,看起来很有趣,我需要进一步研究如何去做。 我最终只是将信息作为 cronjob 存储到我的数据库中并以这种方式进行分页。

以上是关于使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页的主要内容,如果未能解决你的问题,请参考以下文章

LARAVEL 5.8 - 在 foreach 中使用数组的 WHERE LIKE 子句的多个条件没有给出完整的结果

当表 laravel 5.8 中没有数据时,null 返回总和而不是 0

laravel 5.8 在 getenv 上返回 false

Laravel 5.8刀片,从嵌套对象错误中获取值

带有 axios 和 vue 的 laravel 5.8 中的 CSRF

如何在关系表laravel 5.8中解码Json数据