@@ -40,10 +40,10 @@ public function get($model, string $key, $value, array $attributes): ?DataCollec
40
40
41
41
$ data = json_decode ($ value , true , flags: JSON_THROW_ON_ERROR );
42
42
43
- $ dataClass = $ this ->dataConfig -> getDataClass ( $ this -> dataClass );
43
+ $ isAbstractClassCast = $ this ->isAbstractClassCast ( );
44
44
45
- $ data = array_map (function (array $ item ) use ($ dataClass ) {
46
- if ($ dataClass -> isAbstract && $ dataClass -> transformable ) {
45
+ $ data = array_map (function (array $ item ) use ($ isAbstractClassCast ) {
46
+ if ($ isAbstractClassCast ) {
47
47
$ morphedClass = $ this ->dataConfig ->morphMap ->getMorphedDataClass ($ item ['type ' ]) ?? $ item ['type ' ];
48
48
49
49
return $ morphedClass ::from ($ item ['data ' ]);
@@ -73,10 +73,10 @@ public function set($model, string $key, $value, array $attributes): ?string
73
73
throw CannotCastData::shouldBeArray ($ model ::class, $ key );
74
74
}
75
75
76
- $ dataClass = $ this ->dataConfig -> getDataClass ( $ this -> dataClass );
76
+ $ isAbstractClassCast = $ this ->isAbstractClassCast ( );
77
77
78
- $ data = array_map (function (array |BaseData $ item ) use ($ dataClass ) {
79
- if ($ dataClass -> isAbstract && $ item instanceof TransformableData) {
78
+ $ data = array_map (function (array |BaseData $ item ) use ($ isAbstractClassCast ) {
79
+ if ($ isAbstractClassCast && $ item instanceof TransformableData) {
80
80
$ class = get_class ($ item );
81
81
82
82
return [
@@ -90,7 +90,7 @@ public function set($model, string $key, $value, array $attributes): ?string
90
90
: $ item ;
91
91
}, $ value );
92
92
93
- if ($ dataClass -> isAbstract ) {
93
+ if ($ isAbstractClassCast ) {
94
94
return json_encode ($ data );
95
95
}
96
96
@@ -107,6 +107,7 @@ public function set($model, string $key, $value, array $attributes): ?string
107
107
108
108
protected function isAbstractClassCast (): bool
109
109
{
110
- return $ this ->dataConfig ->getDataClass ($ this ->dataClass )->isAbstract ;
110
+ $ dataClass = $ this ->dataConfig ->getDataClass ($ this ->dataClass );
111
+ return $ dataClass ->isAbstract && $ dataClass ->transformable ;
111
112
}
112
113
}
0 commit comments