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

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

Метод set класса ConstraintViolationList заменяет существующее нарушение валидации по указанному индексу. Первым параметром передаётся индекс элемента, вторым - объект нарушения. Если по индексу нет элемента, будет выброшено исключение OutOfRangeException.

Синтаксис

public function set(int $offset, ConstraintViolationInterface $violation): void

Пример

Давайте создадим коллекцию нарушений и заменим первый элемент:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorConstraintViolation; use SymfonyComponentValidatorConstraintViolationList; class ArticleController extends AbstractController { public function index(): Response { $list = new ConstraintViolationList(); $list->add(new ConstraintViolation('error 1')); $list->add(new ConstraintViolation('error 2')); $list->set(0, new ConstraintViolation('new error')); return new Response($list->get(0)->getMessage()); } } ?>

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

"new error"

Пример

Давайте проверим, что происходит при замене элемента по несуществующему индексу:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorConstraintViolation; use SymfonyComponentValidatorConstraintViolationList; class ArticleController extends AbstractController { public function index(): Response { $list = new ConstraintViolationList(); $list->add(new ConstraintViolation('error 1')); try { $list->set(5, new ConstraintViolation('new error')); } catch (OutOfRangeException $e) { return new Response($e->getMessage()); } return new Response('ok'); } } ?>

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

"ConstraintViolationList::set(): Argument #1 ($offset) must be a valid offset"

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

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