2016-07-12 34 views
1

我正在使用SOAP来查询我们的Salesforce数据库,并且可以查询并显示结果。不过,我现在想使用关系查询(子查询)。我可以从查询中获得结果,但努力在PHP中显示子查询结果。PHP SOAP Salesforce子查询

我做了以下内容:

$Query = "SELECT Account.Name, (SELECT Contact.Name, Contact.accountId FROM contacts) FROM Account WHERE Name Like '%Test Client%'"; 
    $Response = $SforceConnection->query($Query); 

    foreach ($Response->records as $RecordSet) { 
    echo "$RecordSet->Name."<br />"; 
    } 

我可以显示的公司名称就好了,但奋力显示像Contact.Name和Contact.accountId子查询数据。我不确定显示这两个字段的正确语法。

当我运行SQL我得到下面的数组养神:

["queryLocator"]=> NULL ["done"]=> bool(true) ["records"]=> array(1) { 
    [0]=> object(stdClass)#10 (3) { 
     ["Id"]=> NULL ["Contacts"]=> object(stdClass)#11 (4) { 
      ["done"]=> bool(true) ["queryLocator"]=> NULL ["records"]=> array(1) { 
       [0]=> object(stdClass)#12 (3) { 
        ["Id"]=> NULL ["AccountId"]=> string(18) "0015800000UU25zAER" ["Name"]=> string(16) "Test Users" } 
       } 

      ["size"]=> int(1) 
     } ["Name"]=> string(15) "Test Client" 
    } 
} 

回答

0

您应该能够访问下列方式联系人:

if (isset($RecordSet->Contacts) && isset($RecordSet->Contacts->records) && !empty($RecordSet->Contacts->records)) { 
    foreach($RecordSet->Contacts->records as $contact) { 
    echo $contact->Name; 
    } 
}