【问题标题】:Paginate API response without database (count) with Laravel 5.8使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页
【发布时间】: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);

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

谢谢!

【问题讨论】:

    标签: php laravel laravel-5 mailchimp laravel-5.8


    【解决方案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 存储到我的数据库中并以这种方式进行分页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2020-01-15
    • 2011-12-04
    • 2017-09-13
    • 2016-04-09
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多