2011-11-10 116 views
0

我使用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->錯誤 - >消息;」。問題是什麼?

謝謝

+0

是'result'或'errors'是不是一個對象。 'sforceClient-> create()'返回什麼?基本上,'$ results'應該是一個具有'errors'屬性的對象數組,它又是一個具有'message'屬性的對象。 – abhinav

+0

php告訴你的是'$ result'不是一個對象,或者'$ result-> errors'不是一個對象。由於這是一個SOAP方法,所以'$ result-> errors'實際上可能是一個包含消息對象的數組。嘗試'var_dump($ result); var_dump($ result-> errors);'看看你正在處理什麼; – yannis

回答

0

這意味着無論$結果包含,它不是一個對象。試着對變量$ results做一個var_dump(),看看裏面實際是什麼。然後你可以正確引用它。

+0

$ results = $ sforceClient-> create($ applications,'Application__c'); \t \t \t \t print_r($ results);它顯示輸出爲stdClass對象([id] => a0DZ00000008dUOMAY [成功] => 1) 注意:試圖獲取D:\ xampp \ htdocs \ bakul_project \ insertToApp.php中的非對象的屬性,第287行 – user989184

+0

var_dump($ results) –

+0

object(stdClass)#7(2){[「id」] => string(18)「a0DZ00000008dUTMAY」[「success」] => bool(true)} 注意:試圖獲取屬性第289行的D:\ xampp \ htdocs \ bakul_project \ insertToApp.php中的非對象 – user989184

1

注意$結果是一個數組..

試試這個:

 
if (!isset($result[0]->success) || ($result[0]->success!=1)) {    

    $strErrCode = isset($result[0]->errors[0]->statusCode)? 
         $result[0]->errors[0]->statusCode:'CANNOT_INSERT'; 
    $strErrMsg = isset($result[0]->errors[0]->message)? 
         $result[0]->errors[0]->message:'Error Trying to insert'; 
    $arrResult = array(
         'errorCode' => $strErrCode, 
         'errorMsg' => $strErrMsg, 
         'id' => '', 
        ); 
    error_log('Error Trying to insert - [' . $strErrMsg . '] - [' . $strErrCode . ']'); 
} 
if (isset($result[0]->success) && ($result[0]->success==1)) {    
    $arrResult = array(
         'errorCode' => 'SUCCESS_INSERT', 
         'errorMsg' => 'Insert Success', 
         'id'  => isset($result[0]->id)?$result[0]->id:'1', 
        ); 

    error_log('Success insert - [' . (isset($result[0]->id)?$result[0]->id:'1') . ']'); 
} 
相關問題