2016-03-03 5 views
6

से अधिक पुनरावृति करने के लिए मैं वर्तमान में धारी के साथ एकीकृत कर रहा हूँ और मैं एक मौजूदा सदस्यता मैं सही सदस्यता Id लगाने के लिए सभी मौजूदा सदस्यता को पुनः प्राप्त करने की जरूरत है अद्यतन करने से पहले।कैसे धारी सदस्यता संग्रह

हालांकि, मैं वास्तविक सदस्यता संग्रह से अधिक पुनरावृति करने में असमर्थ होने लगते हैं जब मैं धारी पीएचपी पुस्तकालय का उपयोग करें।

$subscriptions = $customer->subscriptions->all(); 

मैं भी इस की कोशिश की है, जो एक ही होना चाहिए और अंतिम परिणाम में फर्क प्रतीत नहीं होता:

$subscriptions = \Stripe\Customer::retrieve($customer->id)->subscriptions->all(); 

यह कैसे मैं सदस्यता संग्रह पुनः प्राप्त है

सब्सिडी के लिए, सदस्यता संग्रह प्राप्त करने के बाद I echocount() यह देखने के लिए कि इसमें कितने तत्व हैं:

echo count($subscriptions); // echos '1' which is what I expect. 

जब मैं पूरे $subscriptions वस्तु print_r() मैं एक मौजूदा सदस्यता वास्तव में दिख रहा है, तो मैं पुष्टि कर लें कि यह पुनः प्राप्त किया गया है।

मैं तो बस एक foreach साथ संग्रह से अधिक पुनरावृति करना चाहते हैं। यह संभव हो जाना चाहिए क्योंकि StripeObject (लौटे संग्रह के लिए एक आधार वर्ग) ArrayAccess लागू करता है:

foreach($subscriptions as $subscription) 
{ 
    print_r($subscription); 
} 

बहरहाल, यह कुछ भी नहीं होती तो संभव।

कैसे मैं सही ढंग से एक धारी सदस्यता संग्रह से अधिक पुनरावृति करते हैं?

+0

$ सदस्यता एक StripeList वस्तु है, $ subscriptions-> डेटा वास्तविक सरणी –

+0

कोई यह नहीं है है। यह 'संग्रह' -> 'एपी रिसोर्स' -> 'स्ट्राइप ऑब्जेक्ट' है जो 'ArrayAccess' लागू करता है। इसके अलावा, 'डेटा' 'संरक्षित' है। – Luke

+2

$ सब्सक्रिप्शन के माध्यम से पुनरावृत्ति परीक्षण-> डेटा जब आप print_r को संरक्षित के रूप में दिखाई देंगे लेकिन यह अभी भी सुलभ है। –

उत्तर

7

धारी "सूची" API कॉल "सूची वस्तुओं" या "संग्रह" वापस जाएँ। इन objets में उनके data विशेषता में एक वास्तविक सूची होती है।

पीएचपी में, आप पर एक संग्रह इस तरह पुनरावृति कर सकते हैं:

$subscriptions = $customer->subscriptions->all(); 

echo count($subscriptions->data); // Number of resources returned 

foreach ($subscriptions->data as $subscription) { 
    // Do something with $subscription 
} 
+2

यहां लटकने के लिए धन्यवाद। क्या आपको लगता है कि स्ट्रिप संदर्भ दस्तावेज़ों में इस परिलक्षित होने के उदाहरण होना संभव होगा? यह वर्तमान में केवल बहुत ही बुनियादी बातचीत दिखाता है (यानी जानकारी पुनर्प्राप्त करें) लेकिन यह वास्तव में यह नहीं दिखाता है कि एक बार पुनर्प्राप्त किए जाने के बाद डेटा के साथ कैसे काम करना है। प्रत्येक विधि के लिए दिखाया गया JSON ब्लॉब अच्छा है लेकिन अंत में यह अधिक मूल्य नहीं जोड़ता है यदि आप पुस्तकालयों में से किसी एक के साथ काम कर रहे हैं जहां बहुत कुछ सब कुछ सारणित है। – Luke

संबंधित मुद्दे