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

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

Метод count класса ConstraintViolationList возвращает целое число - количество ошибок валидации, содержащихся в списке. Этот метод реализует интерфейс Countable, поэтому его также можно вызывать через функцию count или использовать в конструкции count($list). Параметров метод не принимает.

Синтаксис

public function count(): int

Пример

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

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

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

2

Пример

Так как класс реализует Countable, метод count можно вызывать и через одноимённую функцию:

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

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

1

Пример

Если ошибок нет, метод вернёт 0. Проверим это на корректных данных:

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

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

0

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

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