2015-04-04 133 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