Метод add класса ConstraintViolationList
Метод add класса ConstraintViolationList добавляет
новую ошибку валидации в коллекцию. Первым параметром
передаётся объект, реализующий интерфейс
ConstraintViolationInterface. Метод изменяет текущий
объект коллекции и возвращает ссылку на самого себя,
что позволяет строить цепочки вызовов.
Синтаксис
public function add(ConstraintViolationInterface $violation): static
Пример
Давайте создадим пустую коллекцию и добавим в неё одну ошибку валидации:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentValidatorConstraintViolation;
use SymfonyComponentValidatorConstraintViolationList;
class ArticleController extends AbstractController
{
public function index(): Response
{
$list = new ConstraintViolationList();
$violation = new ConstraintViolation(
'Value should not be blank.',
null,
[],
null,
'',
null
);
$list->add($violation);
return new Response((string) $list->count());
}
}
?>
Результат выполнения кода:
"1"
Пример
Давайте добавим несколько ошибок и выведем их сообщения:
<?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(
'Value should not be blank.',
null,
[],
null,
'',
null
));
$list->add(new ConstraintViolation(
'Value is too short.',
null,
[],
null,
'',
null
));
$messages = [];
foreach ($list as $violation) {
$messages[] = $violation->getMessage();
}
return new Response(implode(' | ', $messages));
}
}
?>
Результат выполнения кода:
"Value should not be blank. | Value is too short."
Смотрите также
-
класс
ConstraintViolationList,
который представляет коллекцию ошибок валидации -
метод
count,
который возвращает количество ошибок в коллекции -
метод
get,
который возвращает ошибку по её индексу -
метод
validate,
который запускает валидацию объекта