РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
342 of 1361 menu

Правило 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,
    который проверяет валидность формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить