ValidationException
Описание: Исключение для ошибок валидации данных Специализированное исключение для обработки ошибок валидации с поддержкой множественных ошибок и детальной диагностики. Используется для валидации входных данных, параметров API и моделей данных.
С версии: 1.0.0
Версия: 1.0.0
Пример:
try {
$movie = Movie::fromArray($data);
$movie->validate();
} catch (ValidationException $e) {
foreach ($e->getErrors() as $field => $error) {
echo "Поле {$field}: {$error}\n";
}
}См. также:
\KinopoiskDev\Services\ValidationService: Сервис валидации\KinopoiskDev\Attributes\Validation: Атрибут валидации
__construct()
Описание: Конструктор исключения валидации Создает новый экземпляр исключения валидации с указанными параметрами. Поддерживает как одиночные ошибки для конкретного поля, так и множественные ошибки для нескольких полей.
Параметры:
$message(string): Основное сообщение об ошибке$field(string|null): Поле, вызвавшее ошибку$value(mixed): Значение, не прошедшее валидацию$code(int): Код ошибки (по умолчанию 0)$previous(Throwable|null): Предыдущее исключение в цепочке
Пример:
throw new ValidationException(
'Ошибка валидации фильма',
['title' => 'Название обязательно', 'year' => 'Год должен быть положительным'],
'title',
null
);forField()
Описание: Создает исключение для конкретного поля Фабричный метод для создания исключения валидации для одного конкретного поля с указанным сообщением об ошибке.
Параметры:
$field(string): Название поля, вызвавшего ошибку$message(string): Сообщение об ошибке валидации$value(mixed): Значение поля, не прошедшее валидацию
Возвращает: self Экземпляр исключения валидации
Пример:
throw ValidationException::forField(
'email',
'Неверный формат email адреса',
'invalid-email'
);withErrors()
Описание: Создает исключение для множественных ошибок Фабричный метод для создания исключения валидации с множественными ошибками для разных полей.
Возвращает: self Экземпляр исключения валидации
Пример:
$errors = [
'title' => 'Название обязательно',
'year' => 'Год должен быть положительным',
'rating' => 'Рейтинг должен быть от 0 до 10'
];
throw ValidationException::withErrors($errors);getErrors()
Описание: Возвращает список всех ошибок валидации Возвращает ассоциативный массив, где ключи - названия полей, а значения - сообщения об ошибках валидации.
Возвращает: array<string, string> Массив ошибок в формате ['field' => 'error_message']
Пример:
$errors = $exception->getErrors();
// Результат: ['title' => 'Название обязательно', 'year' => 'Год должен быть положительным']getField()
Описание: Возвращает поле, вызвавшее ошибку Возвращает название поля, которое не прошло валидацию. Может быть null, если ошибка не связана с конкретным полем.
Возвращает: string|null Название поля или null
Пример:
$field = $exception->getField();
// Результат: 'title' или nullgetValue()
Описание: Возвращает значение, не прошедшее валидацию Возвращает значение, которое вызвало ошибку валидации. Полезно для диагностики и отладки проблем валидации.
Возвращает: mixed Проблемное значение
Пример:
$value = $exception->getValue();
// Результат: null, пустая строка, отрицательное число и т.д.getFirstError()
Описание: Возвращает первую ошибку валидации Возвращает текст первой ошибки из списка ошибок валидации. Полезно для быстрого отображения основной проблемы.
Возвращает: string|null Текст первой ошибки или null, если ошибок нет
Пример:
$firstError = $exception->getFirstError();
// Результат: 'Название обязательно' или nullhasErrors()
Описание: Проверяет, есть ли ошибки валидации Удобный метод для проверки наличия ошибок валидации без необходимости проверки размера массива ошибок.
Возвращает: bool True если есть ошибки, false если ошибок нет
Пример:
if ($exception->hasErrors()) {
// Обработка ошибок
}