@@ -439,7 +439,7 @@ private function hydrateValue(mixed $value, LivePropMetadata $propMetadata, obje
439
439
if ($ propMetadata ->collectionValueType () && Type::BUILTIN_TYPE_OBJECT === $ propMetadata ->collectionValueType ()->getBuiltinType ()) {
440
440
$ collectionClass = $ propMetadata ->collectionValueType ()->getClassName ();
441
441
foreach ($ value as $ key => $ objectItem ) {
442
- $ value [$ key ] = $ this ->hydrateObjectValue ($ objectItem , $ collectionClass , true , $ parentObject ::class, sprintf ('%s.%s ' , $ propMetadata ->getName (), $ key ), $ parentObject );
442
+ $ value [$ key ] = $ this ->hydrateObjectValue ($ objectItem , $ collectionClass , true , $ propMetadata -> getFormat (), $ parentObject ::class, sprintf ('%s.%s ' , $ propMetadata ->getName (), $ key ), $ parentObject );
443
443
}
444
444
}
445
445
@@ -461,10 +461,10 @@ private function hydrateValue(mixed $value, LivePropMetadata $propMetadata, obje
461
461
return $ value ;
462
462
}
463
463
464
- return $ this ->hydrateObjectValue ($ value , $ propMetadata ->getType (), $ propMetadata ->allowsNull (), $ parentObject ::class, $ propMetadata ->getName (), $ parentObject );
464
+ return $ this ->hydrateObjectValue ($ value , $ propMetadata ->getType (), $ propMetadata ->allowsNull (), $ propMetadata -> getFormat (), $ parentObject ::class, $ propMetadata ->getName (), $ parentObject );
465
465
}
466
466
467
- private function hydrateObjectValue (mixed $ value , string $ className , bool $ allowsNull , string $ componentClassForError , string $ propertyPathForError , object $ component ): ?object
467
+ private function hydrateObjectValue (mixed $ value , string $ className , bool $ allowsNull , ? string $ dateFormat , string $ componentClassForError , string $ propertyPathForError , object $ component ): ?object
468
468
{
469
469
// enum
470
470
if (is_a ($ className , \BackedEnum::class, true )) {
@@ -485,6 +485,10 @@ private function hydrateObjectValue(mixed $value, string $className, bool $allow
485
485
throw new BadRequestHttpException (sprintf ('The model path "%s" was sent an invalid data type "%s" for a date. ' , $ propertyPathForError , get_debug_type ($ value )));
486
486
}
487
487
488
+ if (null !== $ dateFormat ) {
489
+ return $ className ::createFromFormat ($ dateFormat , $ value );
490
+ }
491
+
488
492
return new $ className ($ value );
489
493
}
490
494
0 commit comments