Home > Mobile >  Object of class stdClass could not be converted to string (php)
Object of class stdClass could not be converted to string (php)

Time:09-16

I'm happy with some updates from my Website but I can't find out what I am doing wrong.

DB::beginTransaction();
 try {
 Log::debug('--- create ---');
 Log::debug($responsible->contactInfo);
 $firstName  = isset($responsible->firstName)  ? $responsible->firstName  : 'NoName';
 $lastName   = isset($responsible->lastName)   ? $responsible->lastName   : $firstName;
 $middleName = isset($responsible->middleName) ? $responsible->middleName : '';
 if (isset($responsible->contactInfo)) {
 foreach ($responsible->contactInfo as $key => $value) {
 if ($value && property_exists($value, 'type') && $value->type == 'email') {
                   $email = $value->value;
                            }
 if ($value && property_exists($value, 'type') && $value->type == 'phone') {
                   $phone = preg_replace('/[^0-9]/', '', $value->value);
                            }
                        }
                    }

I processing this info:

(
        [id] => 1000005
        [firstName] => Test
        [lastName] => John
        [middleName] => Smith
        [contactInfo] => stdClass Object
            (
                [0] => stdClass Object
                    (
                        [type] => email
                        [value] => [email protected]
                    )
    
                [1] => stdClass Object
                    (
                        [type] => phone
                        [value] =>  380 67 777 7777
                    )
    
            )
    
        [position] => Manager
    )

And i getting this error:


    [2021-09-14 15:46:18] production.INFO: responsible  
    [2021-09-14 15:46:18] production.INFO: stdClass Object
    (
        [id] => 1000005
        [firstName] => Test
        [lastName] => John
        [middleName] => Smith
        [contactInfo] => stdClass Object
            (
                [0] => stdClass Object
                    (
                        [type] => email
                        [value] => [email protected]
                    )
    
                [1] => stdClass Object
                    (
                        [type] => phone
                        [value] =>  380 67 777 7777
                    )
    
            )
    
        [position] => Manager
    )
      
    [2021-09-14 15:46:18] production.DEBUG: --- create ---  
    [2021-09-14 15:46:18] production.ERROR: Uncaught exception 'ErrorException' with message 'Object of class stdClass could not be converted to string' in /home/www/test/vendor/monolog/monolog/src/Monolog/Logger.php:329  

 

I hope someone can help me with this.

CodePudding user response:

$responsible->contactInfo is a stdClass instance, which is not accepted by the logger.

You have to convert it to an array:

 Log::debug($responsible->contactInfo); // error
 Log::debug((array) $responsible->contactInfo); // should works (logged as an array)
 Log::debug(json_encode($responsible->contactInfo)); // should works (logged as json)
  • Related