2016-03-08 43 views
2

據我所看到的,是要遍歷官方條紋PHP庫這樣的返回集合的方式:迭代通過條紋的PHP API包裝退回計劃

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"); 
} 

有沒有其他人注意到這個問題?什麼改變了?雖然我知道如何使它工作,但它看起來不正確。

+0

在github上回報文件問題 –

回答

4

據我所知,這從來沒有奏效。 ::all()調用返回一個不可直接迭代的對象(或1.x版本中的Stripe_List對象)Collection對象。

正確的語法來調用的結果迭代到::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參數的請求。