@@ -66,22 +66,16 @@ public function create(string $resourceClass, string $property, array $options =
66
66
}
67
67
68
68
$ builtinType = $ p ['cast ' ] ?? $ p ['type ' ];
69
- if ('datetime ' === $ builtinType ) {
70
- $ type = new Type (Type::BUILTIN_TYPE_OBJECT , $ p ['nullable ' ], \DateTimeImmutable::class);
71
- } else {
72
- if (\in_array ($ builtinType , Type::$ builtinTypes , true )) {
73
- $ type = new Type ($ builtinType , $ p ['nullable ' ]);
74
- } else {
75
- $ type = new Type (Type::BUILTIN_TYPE_STRING , $ p ['nullable ' ]);
76
- }
77
- }
69
+ $ type = match ($ builtinType ) {
70
+ 'datetime ' , 'date ' => new Type (Type::BUILTIN_TYPE_OBJECT , $ p ['nullable ' ], \DateTime::class),
71
+ 'immutable_datetime ' , 'immutable_date ' => new Type (Type::BUILTIN_TYPE_OBJECT , $ p ['nullable ' ], \DateTimeImmutable::class),
72
+ default => new Type (\in_array ($ builtinType , Type::$ builtinTypes , true ) ? $ builtinType : Type::BUILTIN_TYPE_STRING , $ p ['nullable ' ]),
73
+ };
78
74
79
- $ propertyMetadata = $ propertyMetadata
75
+ return $ propertyMetadata
80
76
->withBuiltinTypes ([$ type ])
81
77
->withWritable ($ propertyMetadata ->isWritable () ?? true )
82
78
->withReadable ($ propertyMetadata ->isReadable () ?? false === $ p ['hidden ' ]);
83
-
84
- return $ propertyMetadata ;
85
79
}
86
80
87
81
foreach ($ this ->modelMetadata ->getRelations ($ model ) as $ relation ) {
@@ -95,13 +89,12 @@ public function create(string $resourceClass, string $property, array $options =
95
89
}
96
90
97
91
$ type = new Type ($ collection ? Type::BUILTIN_TYPE_ITERABLE : Type::BUILTIN_TYPE_OBJECT , false , $ relation ['related ' ], $ collection , collectionValueType: new Type (Type::BUILTIN_TYPE_OBJECT , false , $ relation ['related ' ]));
98
- $ propertyMetadata = $ propertyMetadata
92
+
93
+ return $ propertyMetadata
99
94
->withBuiltinTypes ([$ type ])
100
95
->withWritable ($ propertyMetadata ->isWritable () ?? true )
101
96
->withReadable ($ propertyMetadata ->isReadable () ?? true )
102
97
->withExtraProperties (['eloquent_relation ' => $ relation ] + $ propertyMetadata ->getExtraProperties ());
103
-
104
- return $ propertyMetadata ;
105
98
}
106
99
107
100
return $ propertyMetadata ;
0 commit comments