From 5cf1a6c3006c4ca82c8251c751aa311c79cbdd4e Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Mon, 25 Mar 2024 21:03:13 -0500 Subject: [PATCH] new validator for radio buttons --- app/Models/CustomFieldset.php | 4 ++++ app/Providers/ValidationServiceProvider.php | 8 ++++++++ resources/lang/en-US/validation.php | 1 + 3 files changed, 13 insertions(+) diff --git a/app/Models/CustomFieldset.php b/app/Models/CustomFieldset.php index 4d960ede41..71be28e8a3 100644 --- a/app/Models/CustomFieldset.php +++ b/app/Models/CustomFieldset.php @@ -103,6 +103,10 @@ class CustomFieldset extends Model if ($field->element == 'checkbox') { $rules[$field->db_column_name()][] = 'checkboxes'; } + + if ($field->element == 'radio') { + $rules[$field->db_column_name()][] = 'radio_buttons'; + } } return $rules; diff --git a/app/Providers/ValidationServiceProvider.php b/app/Providers/ValidationServiceProvider.php index d13898fb3f..803d540865 100644 --- a/app/Providers/ValidationServiceProvider.php +++ b/app/Providers/ValidationServiceProvider.php @@ -322,6 +322,14 @@ class ValidationServiceProvider extends ServiceProvider return true; }); + + // Validates that a radio button option exists + Validator::extend('radio_buttons', function ($attribute, $value) { + $field = CustomField::where('db_column', $attribute)->first(); + $options = $field->formatFieldValuesAsArray(); + + return in_array($value, $options); + }); } /** diff --git a/resources/lang/en-US/validation.php b/resources/lang/en-US/validation.php index 98084afcd4..d027a93f86 100644 --- a/resources/lang/en-US/validation.php +++ b/resources/lang/en-US/validation.php @@ -106,6 +106,7 @@ return [ 'numeric' => 'Value cannot be negative' ], 'checkboxes' => ':attribute contains invalid options.', + 'radio_buttons' => ':attribute is invalid.', /*