Попытка получить свойство необъекта - PullRequest
0 голосов
/ 10 ноября 2011

Я вставляю некоторые данные в объект salesforce с именем Application__c из php, используя Soapclient.После успешного подключения я написал следующий код

<code>$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 '
';}

Я получаю сообщение об ошибке "Попытка получить свойство необъекта" в строке "$ errMessage = $ result-> errors-> message;".В чем проблема?

спасибо

Ответы [ 2 ]

1 голос
/ 06 января 2012

Имейте в виду, что $ result является массивом.

Попробуйте это:

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') . ']');
}
0 голосов
/ 10 ноября 2011

Это означает, что, что бы ни содержал $ results, он не является объектом.Попробуйте выполнить var_dump () для переменной $ results и посмотрите, что там на самом деле.Тогда вы можете правильно сослаться на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...