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

Метод has класса ConstraintViolationList

Метод has класса ConstraintViolationList проверяет, содержит ли коллекция ошибок валидации хотя бы одну ошибку. Метод не принимает параметров и возвращает true, если коллекция не пуста, и false, если ошибок нет. Метод удобно использовать после вызова валидатора для проверки результата валидации.

Синтаксис

public function has(): bool

Пример

Давайте создадим валидатор, проверим объект с некорректными данными и вызовем метод has:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidation; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank] public string $title = ''; } class ArticleController extends AbstractController { public function index(): Response { $article = new Article(); $validator = Validation::createValidator(); $errors = $validator->validate($article); if ($errors->has()) { return new Response('has errors'); } return new Response('no errors'); } } ?>

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

"has errors"

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidation; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank] public string $title = 'article'; } class ArticleController extends AbstractController { public function index(): Response { $article = new Article(); $validator = Validation::createValidator(); $errors = $validator->validate($article); if ($errors->has()) { return new Response('has errors'); } return new Response('no errors'); } } ?>

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

"no errors"

Пример

Давайте используем метод has вместе с методом count для подсчёта количества ошибок:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidation; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotBlank] public string $title = ''; #[AssertLength(min: 5)] public string $text = 'abc'; } class ArticleController extends AbstractController { public function index(): Response { $article = new Article(); $validator = Validation::createValidator(); $errors = $validator->validate($article); $res = 'no errors'; if ($errors->has()) { $res = 'errors: ' . $errors->count(); } return new Response($res); } } ?>

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

"errors: 2"

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

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