diff --git a/src/Form/Fields/Formatters/ListFormatter.php b/src/Form/Fields/Formatters/ListFormatter.php index e130daa9b..8c01c3de8 100644 --- a/src/Form/Fields/Formatters/ListFormatter.php +++ b/src/Form/Fields/Formatters/ListFormatter.php @@ -88,13 +88,15 @@ public function afterUpdate(SharpFormField $field, string $attribute, mixed $val { return collect($value) ->map(function ($item) use ($field) { - foreach ($item as $key => $value) { - $itemField = $field->findItemFormFieldByKey($key); - - if ($itemField && $itemField->formatter() instanceof FormatsAfterUpdate) { - $item[$key] = $itemField->formatter() - ->setInstanceId($this->instanceId) - ->afterUpdate($itemField, $key, $value); + if (is_array($item)) { // A formatter could have modified data structure; in this case, we ignore it + foreach ($item as $key => $value) { + $itemField = $field->findItemFormFieldByKey($key); + + if ($itemField && $itemField->formatter() instanceof FormatsAfterUpdate) { + $item[$key] = $itemField->formatter() + ->setInstanceId($this->instanceId) + ->afterUpdate($itemField, $key, $value); + } } }