Метод 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,
который удаляет нарушение по индексу