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

Метод validateProperty

Метод validateProperty класса Validator проверяет значение одного свойства объекта по ограничениям, заданным в его метаданных. Первым параметром передаётся объект, вторым - имя свойства, третьим - массив групп валидации. Метод возвращает объект ConstraintViolationList со списком найденных нарушений.

Синтаксис

public function validateProperty(object $object, string $propertyName, array $groups = null): ConstraintViolationListInterface

Пример

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

<?php namespace AppEntity; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank] #[AssertLength(min: 3)] private string $title = ''; public function getTitle(): string { return $this->title; } public function setTitle(string $title): void { $this->title = $title; } } ?>

Теперь проверим свойство title у пустого объекта:

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidatorValidatorInterface; class ArticleController extends AbstractController { public function index(ValidatorInterface $validator): Response { $article = new Article(); $res = $validator->validateProperty($article, 'title'); return new Response((string) $res); } } ?>

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

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

Пример

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

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidatorValidatorInterface; class ArticleController extends AbstractController { public function index(ValidatorInterface $validator): Response { $article = new Article(); $article->setTitle('abcde'); $res = $validator->validateProperty($article, 'title'); return new Response((string) $res); } } ?>

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

""

Пример

Давайте передадим третьим параметром группу валидации 'create' и проверим только ограничения этой группы:

<?php namespace AppEntity; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank(groups: ['create'])] #[AssertLength(min: 3, groups: ['create'])] private string $title = ''; public function setTitle(string $title): void { $this->title = $title; } } ?>

Теперь проверим свойство title в группе 'create':

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidatorValidatorInterface; class ArticleController extends AbstractController { public function index(ValidatorInterface $validator): Response { $article = new Article(); $res = $validator->validateProperty($article, 'title', ['create']); return new Response((string) $res); } } ?>

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

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

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

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