You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug in Serializer component: Catchable Fatal Error: Object of class Symfony\Component\Serializer\Mapping\AttributeMetadata could not be converted to string #16445
When you access the \Symfony\Component\Serializer\Normalizer\AbstractNormalizer::getAllowedAttributes method with $attributesAsString = false, you run into the following issue:
Uncaught exception 'Symfony\Component\Debug\Exception\ContextErrorException' with message 'Catchable Fatal Error: Object of class Symfony\Component\Serializer\Mapping\AttributeMetadata could not be converted to string' in .../Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php:207
This is due to the fact that array_unique can only be used with arrays of scalars. As it includes instances of AttributeMetadataInterface, we get the exception.
Why there is no test case throwing this error is due to fact that this method never gets called with $attributesAsString = false. So I would propose to set the default value parameter for the parameter $attributesAsString to true or even remove the possibility to return AttributeMetadataInterface[]. (Because this error occurs, we know that nobody could have ever used this feature.)
I could fix this by myself by replacing the line of code with:
if ($attributesAsString) {
$allowedAttributes = array_unique($allowedAttributes);
}
return$allowedAttributes;