Вы читаете предварительную версию v0.1. API могут измениться.
~ 1 мин чтенияОбновлено 2026-10-29

Валидация

Elang предоставляет оболочку над ограничениями Symfony Validator. Правила задаются объектами, поэтому вы можете пользоваться существующей экосистемой ограничений без дополнительного строкового языка правил.

Валидация входных данных

use Elang\Validation\Validator;
use Symfony\Component\Validator\Constraints as Assert;

$validated = $validator->validate($data, [
    'name' => [new Assert\NotBlank(), new Assert\Type('string'), new Assert\Length(min: 2, max: 80)],
    'email' => [new Assert\NotBlank(), new Assert\Type('string'), new Assert\Email()],
]);

Внедрите Validator в обработчик или контроллер. При успешной валидации возвращаются только поля, перечисленные в правилах. Неизвестные поля не включаются в возвращаемый массив.

Обязательные и необязательные поля

Большинство ограничений допускает null или пустой ввод. Добавляйте NotBlank или NotNull для обязательных значений. Используйте Type, когда важен тип входных данных. Валидация не выполняет неявное преобразование типов.

Ответы с ошибками

При неудаче выбрасывается ValidationException. HTTP-ядро возвращает статус 422:

{
  "message": "The submitted data is invalid.",
  "errors": {"email": ["This value is not a valid email address."]},
  "request_id": "a request correlation identifier"
}

Приложения с формами могут перехватить исключение и отобразить собственные ошибки формы. Сообщения ограничений можно настраивать с помощью параметров ограничений Symfony.

Нужна помощь?

Проверьте руководство по решению проблем, найдите термин в глоссарий, или пройдите полноценный проект доски задач.

Поиск по документации Elang

Начните вводить, чтобы найти следующий шаг.