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)