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

Метод createValidator класса Validation

Метод createValidator класса Validation создаёт и возвращает объект валидатора ValidatorInterface. Валидатор проверяет объекты и значения на соответствие ограничениям Constraint. Метод принимает необязательный параметр $validatorBuilder - объект ValidatorBuilder, который настраивает создание валидатора. Если параметр не передан, используется стандартный построитель с настройками по умолчанию.

Синтаксис

Validation::createValidator(?ValidatorBuilder $validatorBuilder = null): ValidatorInterface

Пример

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

<?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\Length; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] 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."

Пример

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

<?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class Article { #[Assert\NotBlank] public string $title = ''; #[Assert\Length(min: 5)] public string $text = ''; } ?>

Теперь создадим валидатор и проверим объект Article:

<?php namespace App\Controller; use App\Entity\Article; 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/check', name: 'article_check')] public function check(): Response { $validator = Validation::createValidator(); $article = new Article(); $article->title = ''; $article->text = 'abc'; $violations = $validator->validate($article); return new Response((string) $violations); } } ?>

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

"title: This value should not be blank. text: This value is too short. It should have 5 characters or more."

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

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