Правило PositiveOrZero
Правило PositiveOrZero вешается на поле формы
и проверяет, что значение этого поля является
положительным числом или нулём. Если значение
отрицательное, форма считается невалидной и
возвращается ошибка валидации.
Синтаксис
#[PositiveOrZero(message: 'текст ошибки')]
Пример
Давайте создадим форму с полем count и повесим
на него правило PositiveOrZero:
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\PositiveOrZero;
class ArticleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('count', IntegerType::class, [
'constraints' => [
new PositiveOrZero(),
],
]);
}
}
?>
Пример
Давайте отправим в форму отрицательное значение
-5 и проверим валидность:
<?php
namespace App\Controller;
use App\Form\ArticleType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Request $request): Response
{
$form = $this->createForm(ArticleType::class);
$form->submit(['count' => -5]);
if ($form->isValid()) {
return new Response('valid');
}
return new Response('invalid');
}
}
?>
Результат выполнения кода:
"invalid"
Пример
Давайте отправим в форму нулевое значение
0 и проверим валидность:
<?php
namespace App\Controller;
use App\Form\ArticleType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Request $request): Response
{
$form = $this->createForm(ArticleType::class);
$form->submit(['count' => 0]);
if ($form->isValid()) {
return new Response('valid');
}
return new Response('invalid');
}
}
?>
Результат выполнения кода:
"valid"
Смотрите также
-
правило
Positive,
которое проверяет, что значение больше нуля -
правило
GreaterThanOrEqual,
которое проверяет, что значение больше или равно заданному числу -
правило
Range,
которое проверяет, что значение входит в заданный диапазон -
метод
isValid,
который проверяет валидность формы