Правило IsTrue
Правило IsTrue относится к секции form и
применяется для валидации полей формы. Оно
проверяет, что значение поля строго равно
true. Правило вешается на свойство
сущности или задаётся в опциях формы. Первым
параметром можно передать сообщение об ошибке,
которое будет показано пользователю, если
значение не равно true.
Синтаксис
#[IsTrue(message: message)]
Пример
Давайте создадим сущность с полем active
и повесим на него правило IsTrue:
<?php
namespace AppEntity;
use SymfonyComponentValidatorConstraints as Assert;
class Article
{
#[AssertIsTrue(message: 'The value should be true.')]
private bool $active = false;
public function isActive(): bool
{
return $this->active;
}
public function setActive(bool $active): void
{
$this->active = $active;
}
}
?>
Пример
Давайте проверим значение поля через валидатор:
<?php
namespace AppController;
use AppEntityArticle;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentValidatorValidatorValidatorInterface;
class ArticleController extends AbstractController
{
public function index(ValidatorInterface $validator): Response
{
$article = new Article();
$article->setActive(false);
$errors = $validator->validate($article);
if (count($errors) > 0) {
return new Response((string) $errors);
}
return new Response('valid');
}
}
?>
Результат выполнения кода:
Object(AppEntityArticle).active: The value should be true.
Пример
Давайте передадим значение true и убедимся,
что ошибок нет:
<?php
namespace AppController;
use AppEntityArticle;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentValidatorValidatorValidatorInterface;
class ArticleController extends AbstractController
{
public function index(ValidatorInterface $validator): Response
{
$article = new Article();
$article->setActive(true);
$errors = $validator->validate($article);
if (count($errors) > 0) {
return new Response((string) $errors);
}
return new Response('valid');
}
}
?>
Результат выполнения кода:
"valid"