Fix serialization of abstract items with groups across multiple entities
This commit is contained in:
parent
31dd002cde
commit
c648b938b2
@ -142,11 +142,16 @@ class ObjectNormalizer extends AbstractObjectNormalizer
|
||||
return false;
|
||||
}
|
||||
|
||||
if (null !== $this->classDiscriminatorResolver && null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) {
|
||||
if (null !== $this->classDiscriminatorResolver) {
|
||||
$class = \is_object($classOrObject) ? \get_class($classOrObject) : $classOrObject;
|
||||
if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForMappedObject($classOrObject)) {
|
||||
$allowedAttributes[] = $attributesAsString ? $discriminatorMapping->getTypeProperty() : new AttributeMetadata($discriminatorMapping->getTypeProperty());
|
||||
}
|
||||
|
||||
foreach ($discriminatorMapping->getTypesMapping() as $class) {
|
||||
$allowedAttributes = array_merge($allowedAttributes, parent::getAllowedAttributes($class, $context, $attributesAsString));
|
||||
if (null !== $discriminatorMapping = $this->classDiscriminatorResolver->getMappingForClass($class)) {
|
||||
foreach ($discriminatorMapping->getTypesMapping() as $mappedClass) {
|
||||
$allowedAttributes = array_merge($allowedAttributes, parent::getAllowedAttributes($mappedClass, $context, $attributesAsString));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,9 +11,15 @@
|
||||
|
||||
namespace Symfony\Component\Serializer\Tests\Fixtures;
|
||||
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
|
||||
/**
|
||||
* @author Samuel Roze <samuel.roze@gmail.com>
|
||||
*/
|
||||
class DummyMessageNumberTwo implements DummyMessageInterface
|
||||
{
|
||||
/**
|
||||
* @Groups({"two"})
|
||||
*/
|
||||
public $three;
|
||||
}
|
||||
|
Reference in New Issue
Block a user