From 9908f555b26ae8c869c3c5299314a8008dd8a37e Mon Sep 17 00:00:00 2001 From: Yasen Pramatarov Date: Wed, 19 Nov 2025 19:39:00 +0200 Subject: [PATCH] Fixes validator to accept "0" as valid value --- app/classes/validator.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/classes/validator.php b/app/classes/validator.php index d9da755..b94d98e 100644 --- a/app/classes/validator.php +++ b/app/classes/validator.php @@ -21,9 +21,25 @@ class Validator { $value = $this->data[$field] ?? null; switch ($rule) { + // case for required fields that can be empty strings case 'required': if ($parameter && empty($value)) { - $this->addError($field, "Field is required"); + $label = $this->formatFieldLabel($field); + $this->addError($field, "$label is required"); + } + break; + // special case for required fields that can't be empty strings or null + case 'required_strict': + if ($parameter) { + if ($value === null) { + $label = $this->formatFieldLabel($field); + $this->addError($field, "$label is required"); + } elseif (is_string($value)) { + if (trim($value) === '') { + $label = $this->formatFieldLabel($field); + $this->addError($field, "$label is required"); + } + } } break; case 'email': @@ -92,6 +108,10 @@ class Validator { $this->errors[$field][] = $message; } + private function formatFieldLabel($field) { + return ucfirst(str_replace('_', ' ', $field)); + } + public function getErrors() { return $this->errors; }