2012-05-12 22 views
0

下面是一個代表我的問題的通用查詢示例。使用salesforce SOAP api和合作夥伴wsdl顯示php子查詢結果的故障

$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" } } } } 
+0

您正在'foreach'循環內使用'$ response-> records',您應該只使用'$ record',對吧? :) – Daan

+0

不知道我明白你的意思。沒有$ response->記錄我沒有收到任何信息。這是我從var_dump .. object(SObject)#1869(2){[「type」] => string(7)「Account」[「fields」] => object(stdClass)#1870 (1){[「Name」] => string(15)「Account Name test」}} – user1391375

+0

我只是想知道爲什麼你同時使用'echo $ sObject-> sobjects [0] - > Name。「
\ n「;''和'echo $ record-> fields-> Name。」
\ n「;'? :) – Daan

回答

1

所以,我終於找到的東西,把我在正確的道路上。這裏是我如何解決它...

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,並且此查詢將顯示!

感謝大安試圖幫助!

相關問題