РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
467 of 1361 menu

Класс Validation

Класс Validation - это точка входа в сервис валидации Symfony. Он содержит статические методы createValidator и createValidatorBuilder, которые создают объект ValidatorInterface и ValidatorBuilder соответственно. Первый метод удобен для быстрой валидации, второй - когда нужно настроить валидатор: подключить свои constraint-валидаторы, задать кэш метаданных или включить аннотации.

Синтаксис

Validation::createValidator(): ValidatorInterface Validation::createValidatorBuilder(): ValidatorBuilder

Пример

Давайте создадим валидатор и проверим строку на длину:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidation; use SymfonyComponentValidatorConstraintsLength; class ArticleController extends AbstractController { public function index(): Response { $validator = Validation::createValidator(); $violations = $validator->validate('abcde', [ new Length(['min' => 10]), ]); return new Response((string) $violations); } } ?>

Результат выполнения кода:

"This value is too short. It should have 10 characters or more."

Пример

Давайте создадим валидатор через ValidatorBuilder и проверим объект:

<?php namespace AppEntity; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank] #[AssertLength(min: 3)] public string $title = ''; #[AssertNotNull] public ?int $views = null; } ?>
<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidation; class ArticleController extends AbstractController { public function index(): Response { $builder = Validation::createValidatorBuilder(); $validator = $builder->enableAttributeMapping()->getValidator(); $article = new Article(); $res = $validator->validate($article); return new Response((string) $res); } } ?>

Результат выполнения кода:

"Object(AppEntityArticle).title: This value should not be blank. Object(AppEntityArticle).views: This value should not be null."

Смотрите также

  • класс Validator,
    который выполняет валидацию данных
  • метод validate,
    который проверяет объект или значение
  • метод validateProperty,
    который валидирует отдельное свойство объекта
  • класс ConstraintViolationList,
    который хранит список нарушений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить