簡體   English   中英

使用Salesforce SOAP API和合作伙伴wsdl無法顯示PHP子查詢的結果

[英]Trouble displaying results of sub query with php using salesforce SOAP api and partner wsdl

這是代表我的問題的通用查詢示例。

$query = "SELECT Account.Name, Name from Contract WHERE AccountId = '001U0000003q6scIAA'";
$response = $mySforceConnection->query($query);

foreach ($response->records as $record) {
$sObject = new SObject($response->records[0]);
var_dump($sObject);
echo $sObject->sobjects[0]->Name."<br/>\n";
echo $record->fields->Name."<br/>\n";
echo "*******************************<br/>\n";
echo "*******************************<br/>\n";
}

問題在於Account.Name字段將不會顯示。 以防萬一我的整個方法是錯誤的,其想法是獲取分配給特定帳戶的所有合同,並同時顯示帳戶名和合同中的相關信息。 (到目前為止,所有合同字段均顯示完美。只是無法顯示帳戶名稱)

預先感謝您的協助!

這是var_export()。(我刪除了所有自定義字段)

SObject::__set_state(array( 'type' => 'Contract', 'fields' => stdClass::__set_state(array(
'AccountId' => '001U0000003q6scIAA', 'Name' => 'test contract', '1' =>
SObject::__set_state(array( 'type' => 'Account', 'fields' => stdClass::__set_state(array( 
'Name' => 'test Account name', )), )), )), ))

這是var_dump()...

object(SObject)#5 (2) { ["type"]=> string(8) "Contract" ["fields"]=> object(stdClass)#1871 (14) {
["AccountId"]=> string(18) "001U0000003q6scIAA" ["Name"]=> string(18) "Test Contract Name"
["1"]=> object(SObject)#1869 (2) { ["type"]=> string(7) "Account" ["fields"]=> object(stdClass)#1870 (1) { ["Name"]=> string(15) "Account Name" } } } }

所以我終於找到了使我走上正確道路的東西。 這是我解決的方法...

foreach ($response->records as $record) {
    echo $record->fields->{1}->fields->Name."<br/>\n";
    echo $record->fields->Name."<br/>\n";
    echo "*******************************<br/>\n";
    echo "*******************************<br/>\n";
}

我本來嘗試過這種方法,但是沒有{}給出錯誤。 因此,您要做的就是查看print_r()輸出,將數字更改為此處給您的數字- ["1"]=> object(SObject)#1869 ,此查詢將顯示!

感謝Daan的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM