2015-04-04 167 views
0

我想通過stdClass對象($ args)循環,格式如下所示。目標是循環遍歷每個sObjects,JSON對值進行編碼並將其發送到端點。循環訪問stdClass對象和數組的嵌套集合

我想這會做的伎倆:

$object = $args->Notification->sObject; 

    foreach($object as $item) { JSON_ENCODE AND SEND TO PASTEB.IN } 

除了我剛剛得到一個「空」的反應。

如果我這樣做:

$object = $args->Notification; 

    foreach($object as $item) { 

     $sf = $item->sObject;" 

     // JSON_ENCODE $sf and send to PASETBI.N 

     } 

...我得到的只有一個結果發佈到pasteb.in,不是所有的人(如3個獨立的結果應該是在下面的情況下,結果表)。

我已經看過關於循環數組/ sObjects的其他問題的答案,但我無法正確理解。任何幫助將非常感激!

Print_r'ing此對象是否顯示格式爲:

stdClass Object 
(
    [OrganizationId] => XXXXXXXXXXXXXXXX 
    [ActionId] => XXXXXXXXXXXXXXXX 
    [SessionId] => 
    [EnterpriseUrl] => https://darlston-dev-ed.my.salesforce.com/services/Soap/c/33.0/XXXXXXXXXXXXXXXX 
    [PartnerUrl] => https://darlston-dev-ed.my.salesforce.com/services/Soap/u/33.0/XXXXXXXXXXXXXXXX 
    [Notification] => Array 
     (
      [0] => stdClass Object 
       (
        [Id] => XXXXXXXXXXXXXXXX 
        [sObject] => stdClass Object 
         (
          [Id] => XXXXXXXXXXXXXXXX 
          [Contact_Email__c] => [email protected] 
         ) 

       ) 

      [1] => stdClass Object 
       (
        [Id] => XXXXXXXXXXXXXXXX 
        [sObject] => stdClass Object 
         (
          [Id] => XXXXXXXXXXXXXXXX 
          [Contact_Email__c] => [email protected] 
         ) 

       ) 

      [2] => stdClass Object 
       (
        [Id] => XXXXXXXXXXXXXXXX 
        [sObject] => stdClass Object 
         (
          [Id] => XXXXXXXXXXXXXXXX 
          [Contact_Email__c] => [email protected] 
         ) 

       ) 

     ) 

) 

回答

0

你可以試試這個?

foreach($args->Notification as $item) 
{ 
    echo $item->Id."<br>"; 
    echo $item->sObject->Id."<br>"; 
    echo $item->sObject->Contact_Email__c."<br>"; 
} 
+0

嗨,感謝您的關注。所以,我試着用這個,但它仍然給我一個結果,而不是我的樣本中的三個sObjects。我不確定這是因爲該頁面使用PHP soap嗎? – 2015-04-04 17:35:49

+0

如果有用,這裏是整個頁面。該頁面正在偵聽XML,然後以$ args的形式返回。重要的一點是在通知功能中。 [鏈接到PHP要點](https://gist.github.com/louisskelton/094e35a06b3515364262) – 2015-04-04 17:39:40

+0

嗨丹尼爾 - 感謝這一點,事實證明,問題是後來的代碼行,導致循環abort: 'return Response :: success();' 一旦這個問題被註釋掉了,你的解決方案就可以很好地工作了 - 乾杯! – 2015-04-07 11:47:51