【问题标题】:Iterating over plans returned by Stripe's PHP API wrapper迭代 Stripe 的 PHP API 包装器返回的计划
【发布时间】:2016-06-23 03:19:19
【问题描述】:

据我所知,有一种方法可以迭代官方 Stripe PHP 库返回的集合,如下所示:

foreach (\Stripe\Plan::all() as $plan) {
    print("$plan->id ($plan->interval)\n");
}

但这不再起作用(我在 PHP7 上并使用 stripe/stripe-php v3.9.2)。我必须像这样运行它:

foreach (\Stripe\Plan::all()->__toArray()['data'] as $plan) {
    print("$plan->id ($plan->interval)\n");
}

有没有其他人注意到这个问题?发生了什么变化?虽然我知道如何让它发挥作用,但它看起来并不正确。

【问题讨论】:

  • 在 github repo 上提交问题

标签: php api stripe-payments


【解决方案1】:

据我所知,这从未奏效。 ::all() 调用返回不可直接迭代的 Collection 对象(或 1.x 版本中的 Stripe_List 对象)。

::all() 的调用结果进行迭代的正确语法是:

foreach (\Stripe\Plan::all()->data as $plan) {
    // Do something with $plan
}

使用较新的版本 (>= 3.9.0),您可以使用自动分页功能:

foreach (\Stripe\Plan::all()->autoPagingIterator() as $plan) {
    // Do something with $plan
}

这将让您自动迭代整个计划列表。绑定将负责在后台为您发出所有带有pagination 参数的请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多