From 7d180ad4ee76338581301b4668dd17264c82ce00 Mon Sep 17 00:00:00 2001 From: Baspa Date: Fri, 1 Aug 2025 10:09:03 +0200 Subject: [PATCH] wip --- src/Fields/Select.php | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/Fields/Select.php b/src/Fields/Select.php index f3f8560..94c9ddd 100644 --- a/src/Fields/Select.php +++ b/src/Fields/Select.php @@ -103,31 +103,19 @@ public static function mutateBeforeSaveCallback(Model $record, Field $field, arr * Normalize the select value to an array or a single value. This is needed because the select field can be * changed from single to multiple or vice versa. */ - private static function normalizeSelectValue($value, Field $field): mixed + private static function normalizeSelectValue($value, Field $field): array { - $isMultiple = $field->config['multiple'] ?? false; - // Handle JSON string values if (is_string($value) && json_validate($value)) { - $value = json_decode($value, true); + $value = (array) json_decode($value, true); } // Handle null/empty values consistently if ($value === null || $value === '') { - return $isMultiple ? [] : null; - } - - // Convert to array if multiple is expected but value is not an array - if ($isMultiple && ! is_array($value)) { - return [$value]; - } - - // Convert array to single value if multiple is not expected - if (! $isMultiple && is_array($value)) { - return empty($value) ? null : reset($value); + return []; } - return $value; + return is_array($value) ? $value : [$value]; } public function getForm(): array