*/ private array $errors = []; /** * Fügt eine Fehlermeldung für ein Feld hinzu */ public function addError(string $field, string $message): void { $this->errors[$field][] = $message; } /** * Fügt mehrere Fehlermeldungen für ein Feld hinzu * * @param string $field Feldname * @param array $messages Liste von Fehlermeldungen */ public function addErrors(string $field, array $messages): void { foreach ($messages as $message) { $this->addError($field, $message); } } /** * Prüft, ob Fehler vorhanden sind */ public function hasErrors(): bool { return !empty($this->errors); } /** * Gibt alle Fehlermeldungen für ein bestimmtes Feld zurück * * @param string $field Feldname * @return array Liste der Fehlermeldungen für das Feld */ public function getFieldErrors(string $field): array { return $this->errors[$field] ?? []; } /** * Gibt alle Fehlermeldungen als flache Liste zurück * * @return array Liste aller Fehlermeldungen */ public function getAllErrorMessages(): array { $messages = []; foreach ($this->errors as $fieldErrors) { foreach ($fieldErrors as $error) { $messages[] = $error; } } return $messages; } /** * Kombiniert zwei Validierungsergebnisse */ public function merge(ValidationResult $other): self { foreach ($other->errors as $field => $messages) { foreach ($messages as $message) { $this->addError($field, $message); } } return $this; } public function getAll():array { return $this->errors; } }