Fixes validator to accept "0" as valid value

main
Yasen Pramatarov 2025-11-19 19:39:00 +02:00
parent 76385b78d5
commit 9908f555b2
1 changed files with 21 additions and 1 deletions

View File

@ -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;
}