From 7ae257dedec2dc168e5c0e76aba0baf34c785e3b Mon Sep 17 00:00:00 2001 From: "Joseph.Rawlings" Date: Thu, 12 Mar 2026 17:59:06 -0400 Subject: [PATCH] Enhance TagsInput validation: ensure at least one item is required for non-empty arrays --- app/Classes/FilamentInput.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/Classes/FilamentInput.php b/app/Classes/FilamentInput.php index d1b5a2e47..72b11beb1 100644 --- a/app/Classes/FilamentInput.php +++ b/app/Classes/FilamentInput.php @@ -90,14 +90,22 @@ class FilamentInput break; case 'tags': - return TagsInput::make($setting->name) + $input = TagsInput::make($setting->name) ->label($setting->label ?? $setting->name) ->placeholder($setting->placeholder ?? '') - ->required($setting->required ?? false) ->disabled($setting->disabled ?? false) ->hint($setting->hint ?? '') ->hintColor('primary') ->helperText($setting->description ?? ''); + + // For required TagsInput, we need to validate the array has at least one item + // Filament's required() alone considers empty arrays as "filled" + if ($setting->required ?? false) { + $input->required() + ->rules(['array', 'min:1']); + } + + return $input; break; case 'text':