如何迭代 Stripe 订阅集合
How to iterate over Stripe subscription collection
我目前正在与 Stripe 集成,在更新现有订阅之前,我需要检索所有现有订阅以找到正确的订阅 ID。
但是,当我使用 Stripe PHP 库时,我似乎无法迭代实际的订阅集合。
这是我检索订阅集合的方式:
$subscriptions = $customer->subscriptions->all();
这个我也试过了,应该是一样的,最后的结果好像没什么区别:
$subscriptions = \Stripe\Customer::retrieve( $customer->id )->subscriptions->all();
出于理智的考虑,在获得订阅集合后,我echo
对其进行了count()
以查看其包含多少元素:
echo count( $subscriptions ); // echos '1' which is what I expect.
当我 print_r()
整个 $subscriptions
对象时,我确实看到了一个现有的订阅,因此我已验证它已被检索到。
然后我想用 foreach
简单地遍历集合。这应该是可能的,因为 StripeObject
(返回集合的基础 class)实现了 ArrayAccess
:
foreach( $subscriptions as $subscription )
{
print_r( $subscription );
}
但是,这不会产生任何结果。
如何正确迭代 Stripe 订阅集合?
条纹 "list" API 调用 return "list objects" 或 "collections"。这些对象在其 data
属性中包含一个实际列表。
在 PHP 中,您可以像这样迭代集合:
$subscriptions = $customer->subscriptions->all();
echo count($subscriptions->data); // Number of resources returned
foreach ($subscriptions->data as $subscription) {
// Do something with $subscription
}
我目前正在与 Stripe 集成,在更新现有订阅之前,我需要检索所有现有订阅以找到正确的订阅 ID。
但是,当我使用 Stripe PHP 库时,我似乎无法迭代实际的订阅集合。
这是我检索订阅集合的方式:
$subscriptions = $customer->subscriptions->all();
这个我也试过了,应该是一样的,最后的结果好像没什么区别:
$subscriptions = \Stripe\Customer::retrieve( $customer->id )->subscriptions->all();
出于理智的考虑,在获得订阅集合后,我echo
对其进行了count()
以查看其包含多少元素:
echo count( $subscriptions ); // echos '1' which is what I expect.
当我 print_r()
整个 $subscriptions
对象时,我确实看到了一个现有的订阅,因此我已验证它已被检索到。
然后我想用 foreach
简单地遍历集合。这应该是可能的,因为 StripeObject
(返回集合的基础 class)实现了 ArrayAccess
:
foreach( $subscriptions as $subscription )
{
print_r( $subscription );
}
但是,这不会产生任何结果。
如何正确迭代 Stripe 订阅集合?
条纹 "list" API 调用 return "list objects" 或 "collections"。这些对象在其 data
属性中包含一个实际列表。
在 PHP 中,您可以像这样迭代集合:
$subscriptions = $customer->subscriptions->all();
echo count($subscriptions->data); // Number of resources returned
foreach ($subscriptions->data as $subscription) {
// Do something with $subscription
}