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

Метод createValidatorBuilder

Метод createValidatorBuilder класса Validation создаёт объект ValidatorBuilder. Этот построитель позволяет настроить будущий валидатор: подключить загрузчики метаданных, указать переводчик, задать кэш и другие параметры. После настройки вызывается метод getValidator, который возвращает готовый объект ValidatorInterface. Метод не принимает параметров.

Синтаксис

<?php use Symfony\Component\Validator\Validation; $builder = Validation::createValidatorBuilder(); ?>

Пример

Давайте создадим построитель валидатора и получим из него готовый валидатор:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validation; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $builder = Validation::createValidatorBuilder(); $validator = $builder->getValidator(); return new Response(get_class($validator)); } } ?>

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

Symfony\Component\Validator\Validator\RecursiveValidator

Пример

Давайте настроим построитель с помощью метода enableAnnotationMapping и проверим объект на валидность:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validation; use Symfony\Component\Validator\Constraints as Assert; class ArticleController extends AbstractController { #[Route('/article/validate', name: 'article_validate')] public function validate(): Response { $builder = Validation::createValidatorBuilder(); $builder->enableAnnotationMapping(); $validator = $builder->getValidator(); $article = new class { #[Assert\NotBlank] public string $title = ''; }; $errors = $validator->validate($article); return new Response((string) $errors); } } ?>

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

Object(App\Controller\ArticleController::validate():string)::title: This value should not be blank.

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

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