@@ -44,8 +44,15 @@ public function __construct($defaultContext = [], NameConverterInterface $nameCo
44
44
*/
45
45
public function normalize ($ object , string $ format = null , array $ context = [])
46
46
{
47
- $ payloadFieldsToSerialize = $ context [self ::PAYLOAD_FIELDS ] ?? $ this ->defaultContext [self ::PAYLOAD_FIELDS ] ?? null ;
48
- if (\is_array ($ payloadFieldsToSerialize )) {
47
+ if (array_key_exists (self ::PAYLOAD_FIELDS , $ context )) {
48
+ $ payloadFieldsToSerialize = $ context [self ::PAYLOAD_FIELDS ];
49
+ } elseif (array_key_exists (self ::PAYLOAD_FIELDS , $ this ->defaultContext )) {
50
+ $ payloadFieldsToSerialize = $ this ->defaultContext [self ::PAYLOAD_FIELDS ];
51
+ } else {
52
+ $ payloadFieldsToSerialize = [];
53
+ }
54
+
55
+ if (\is_array ($ payloadFieldsToSerialize ) && [] !== $ payloadFieldsToSerialize ) {
49
56
$ payloadFieldsToSerialize = array_flip ($ payloadFieldsToSerialize );
50
57
}
51
58
@@ -65,11 +72,11 @@ public function normalize($object, string $format = null, array $context = [])
65
72
66
73
$ constraint = $ violation ->getConstraint ();
67
74
if (
68
- null !== $ payloadFieldsToSerialize &&
75
+ [] !== $ payloadFieldsToSerialize &&
69
76
$ constraint &&
70
77
$ constraint ->payload &&
71
78
// If some or all payload fields are whitelisted, add them
72
- $ payloadFields = [] === $ payloadFieldsToSerialize || true === $ payloadFieldsToSerialize ? $ constraint ->payload : array_intersect_key ($ constraint ->payload , $ payloadFieldsToSerialize )
79
+ $ payloadFields = null === $ payloadFieldsToSerialize || true === $ payloadFieldsToSerialize ? $ constraint ->payload : array_intersect_key ($ constraint ->payload , $ payloadFieldsToSerialize )
73
80
) {
74
81
$ violationEntry ['payload ' ] = $ payloadFields ;
75
82
}
0 commit comments