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

Правило Negative

Правило Negative используется в формах Symfony для валидации полей. Оно проверяет, что значение является отрицательным числом. Правило вешается на поле формы через атрибут #[Assert\Negative]. Если значение не является отрицательным, форма не проходит валидацию и выводится сообщение об ошибке.

Синтаксис

#[Assert\Negative(message: message)]

Пример

Давайте создадим форму с полем, которое должно содержать отрицательное число:

<?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\Negative; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('count', IntegerType::class, [ 'constraints' => [ new Negative(), ], ]); } } ?>

Если пользователь введёт положительное число, валидация не пройдёт. Результат выполнения для значения 5:

"Это значение должно быть отрицательным."

Пример

Давайте укажем своё сообщение об ошибке для правила Negative:

<?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\Negative; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('count', IntegerType::class, [ 'constraints' => [ new Negative( message: 'Число должно быть отрицательным.' ), ], ]); } } ?>

Если пользователь введёт число 10, валидация не пройдёт. Результат выполнения:

"Число должно быть отрицательным."

Пример

Давайте проверим валидацию поля с отрицательным значением через контроллер:

<?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->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return new Response('Форма прошла валидацию'); } return new Response('Форма не прошла валидацию'); } } ?>

Результат выполнения кода для значения -5:

"Форма прошла валидацию"

Смотрите также

  • правило Positive,
    которое проверяет положительное значение
  • правило PositiveOrZero,
    которое проверяет положительное значение или ноль
  • правило NegativeOrZero,
    которое проверяет отрицательное значение или ноль
  • правило Range,
    которое проверяет попадание в диапазон значений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить