首页 > 解决方案 > 使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页

问题描述

我正在使用: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); 任何人都可以指导我对数据响应进行分页吗?

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

谢谢!

标签: phplaravellaravel-5mailchimplaravel-5.8

解决方案


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

public function getMembers(string $listName = '', array $parameters = [])
{
    $list = $this->lists->findByName($listName);
    return $this->mailChimp->get("lists/{$list->getId()}/members", $parameters);
}

Mailchimp API 文档在此处列出了可选参数

分页有两个参数:countoffset

对于我上面读到的内容,您可以尝试以下操作:

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

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


推荐阅读