diff --git a/src/Bridge/Symfony/Bundle/DependencyInjection/Configuration.php b/src/Bridge/Symfony/Bundle/DependencyInjection/Configuration.php index 01ab400629b..286848e8582 100644 --- a/src/Bridge/Symfony/Bundle/DependencyInjection/Configuration.php +++ b/src/Bridge/Symfony/Bundle/DependencyInjection/Configuration.php @@ -94,7 +94,7 @@ public function getConfigTreeBuilder() ->arrayNode('validator') ->addDefaultsIfNotSet() ->children() - ->variableNode('serialize_payload_fields')->defaultNull()->info('Enable the serialization of payload fields when a validation error is thrown.')->end() + ->variableNode('serialize_payload_fields')->defaultValue([])->info('Set to null to serializer all payload fields when a validation error is thrown, or set the fields you want to include explicitly.')->end() ->end() ->end() ->arrayNode('eager_loading') diff --git a/src/Serializer/AbstractConstraintViolationListNormalizer.php b/src/Serializer/AbstractConstraintViolationListNormalizer.php index d977595e470..4d71b1f1839 100644 --- a/src/Serializer/AbstractConstraintViolationListNormalizer.php +++ b/src/Serializer/AbstractConstraintViolationListNormalizer.php @@ -67,11 +67,11 @@ protected function getMessagesAndViolations(ConstraintViolationListInterface $co $constraint = $violation->getConstraint(); if ( - null !== $this->serializePayloadFields && + [] !== $this->serializePayloadFields && $constraint && $constraint->payload && // If some fields are whitelisted, only them are added - $payloadFields = [] === $this->serializePayloadFields ? $constraint->payload : array_intersect_key($constraint->payload, $this->serializePayloadFields) + $payloadFields = null === $this->serializePayloadFields ? $constraint->payload : array_intersect_key($constraint->payload, $this->serializePayloadFields) ) { $violationData['payload'] = $payloadFields; } diff --git a/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php b/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php index 77980595527..c378d7897d7 100644 --- a/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php +++ b/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php @@ -1112,7 +1112,7 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo 'api_platform.graphql.graphiql.enabled' => true, 'api_platform.graphql.graphql_playground.enabled' => true, 'api_platform.resource_class_directories' => Argument::type('array'), - 'api_platform.validator.serialize_payload_fields' => null, + 'api_platform.validator.serialize_payload_fields' => [], 'api_platform.elasticsearch.enabled' => false, ]; diff --git a/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php b/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php index a6bfb4815f0..e3ded4b4c73 100644 --- a/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php +++ b/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php @@ -104,7 +104,7 @@ private function runDefaultConfigTests(array $doctrineIntegrationsToLoad = ['orm 'default_operation_path_resolver' => 'api_platform.operation_path_resolver.underscore', 'path_segment_name_generator' => 'api_platform.path_segment_name_generator.underscore', 'validator' => [ - 'serialize_payload_fields' => null, + 'serialize_payload_fields' => [], ], 'name_converter' => null, 'enable_fos_user' => true, diff --git a/tests/Hydra/Serializer/ConstraintViolationNormalizerTest.php b/tests/Hydra/Serializer/ConstraintViolationNormalizerTest.php index 15604c75bf7..31bd657c150 100644 --- a/tests/Hydra/Serializer/ConstraintViolationNormalizerTest.php +++ b/tests/Hydra/Serializer/ConstraintViolationNormalizerTest.php @@ -90,7 +90,7 @@ public function testNormalize(?array $fields, array $result) public function payloadFieldsProvider(): iterable { yield [['severity', 'anotherField1'], ['severity' => 'warning']]; - yield [[], ['severity' => 'warning', 'anotherField2' => 'aValue']]; - yield [null, []]; + yield [null, ['severity' => 'warning', 'anotherField2' => 'aValue']]; + yield [[], []]; } }