Метод __toString класса ConstraintViolationList
Метод __toString класса ConstraintViolationList
преобразует коллекцию ошибок валидации в строку.
Он не принимает параметров и возвращает строку,
в которой перечислены все нарушения через перевод строки.
Каждое нарушение выводится в формате
"поле: сообщение".
Метод удобно использовать для быстрого вывода
или логирования результатов валидации.
Синтаксис
$res = (string) $violations;
Пример
Давайте создадим список нарушений и выведем его через __toString:
<?php
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList;
$list = new ConstraintViolationList();
$list->add(new ConstraintViolation(
'This value should not be blank.',
null,
[],
null,
'name',
''
));
$list->add(new ConstraintViolation(
'This value is too short.',
null,
[],
null,
'text',
'abc'
));
echo (string) $list;
?>
Результат выполнения кода:
"name: This value should not be blank.
text: This value is too short."
Пример
Давайте провалидируем объект и получим строку ошибок:
<?php
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints as Assert;
class Article
{
#[Assert\NotBlank]
public string $name = '';
#[Assert\Length(min: 5)]
public string $text = 'abc';
}
$validator = Validation::createValidatorBuilder()
->enableAttributeMapping()
->getValidator();
$article = new Article();
$list = $validator->validate($article);
echo (string) $list;
?>
Результат выполнения кода:
"name: This value should not be blank.
text: This value is too short. It should have 5 characters or more."
Пример
Если список пуст, метод возвращает пустую строку:
<?php
use Symfony\Component\Validator\ConstraintViolationList;
$list = new ConstraintViolationList();
var_dump((string) $list);
?>
Результат выполнения кода:
""
Смотрите также
-
класс
ConstraintViolationList,
который хранит коллекцию ошибок валидации -
метод
count,
который возвращает количество ошибок в списке -
метод
get,
который возвращает ошибку по её индексу -
метод
validate,
который запускает валидацию объекта