我使用Soapclient从php中将一些数据插入到名为Application__c的salesforce对象中。连接全成之后,我写了下面的代码试图获取非对象的属性
$applications = array();
$updateFields = array();
if($_POST['savingsAccountBankName'] != ''){
$updateFields['savings_account_bank_name__c']= $_POST['savingsAccountBankName'];
}
if($_POST['AutoMake'] != ''){
$updateFields['Auto_make__c']= $_POST['AutoMake'];
}
if($_POST['AutoLicense'] != ''){
$updateFields['Auto_license__c']= $_POST['AutoLicense'];
}
$sObject = new sObject();
$sObject->type = 'Application__c';
$sObject->fields = $updateFields;
array_push($applications, $sObject);
try {
$results = $sforceClient->create($applications,'Application__c');
foreach ($results as $result)
{
$errMessage = $result->errors->message;
echo $errMessage;
}
} catch (Exception $e) {
echo 'Salesforce Upsert Error. Please try again later.';
echo '<pre>';
print_r($e);
echo '</pre>';
}
我得到错误“试图获得非对象的财产”在行“$ errMessage = $ result->错误 - >消息;”。问题是什么?
谢谢
是'result'或'errors'是不是一个对象。 'sforceClient-> create()'返回什么?基本上,'$ results'应该是一个具有'errors'属性的对象数组,它又是一个具有'message'属性的对象。 – abhinav
php告诉你的是'$ result'不是一个对象,或者'$ result-> errors'不是一个对象。由于这是一个SOAP方法,所以'$ result-> errors'实际上可能是一个包含消息对象的数组。尝试'var_dump($ result); var_dump($ result-> errors);'看看你正在处理什么; – yannis