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

Правило IsFalse

Правило IsFalse вешается на поле формы и проверяет, что его значение равно false. Если значение не равно false, валидация завершается ошибкой. Это правило удобно применять к чекбоксам, которые должны быть сняты, например для подтверждения согласия с условиями.

Синтаксис

#[IsFalse]

Пример

Давайте создадим форму с чекбоксом и повесим на поле правило IsFalse. Сначала создадим контроллер с формой:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Validator\Constraints\IsFalse; use Symfony\Component\Form\FormFactoryInterface; class FormController extends AbstractController { public function form(FormFactoryInterface $factory, Request $request): Response { $builder = $factory->createBuilder(FormType::class); $builder->add('agree', CheckboxType::class, [ 'label' => 'Agree to terms', 'constraints' => [ new IsFalse(), ], ]); $builder->add('save', SubmitType::class, ['label' => 'Submit']); $form = $builder->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return new Response('form valid'); } return $this->render('form/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

Теперь создадим Twig-шаблон для вывода формы:

{{ form_start(form) }} {{ form_row(form.agree) }} {{ form_row(form.save) }} {{ form_end(form) }}

Если отправить форму с установленным чекбоксом, валидация завершится ошибкой. Результат выполнения кода при снятом чекбоксе:

"form valid"

Пример

Давайте выведем сообщение об ошибке валидации для поля с правилом IsFalse. Для этого передадим параметр message:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Validator\Constraints\IsFalse; use Symfony\Component\Form\FormFactoryInterface; class FormController extends AbstractController { public function form(FormFactoryInterface $factory, Request $request): Response { $builder = $factory->createBuilder(FormType::class); $builder->add('agree', CheckboxType::class, [ 'label' => 'Agree to terms', 'constraints' => [ new IsFalse([ 'message' => 'The checkbox must be unchecked.', ]), ], ]); $builder->add('save', SubmitType::class, ['label' => 'Submit']); $form = $builder->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return new Response('form valid'); } return $this->render('form/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

Результат выполнения кода при установленном чекбоксе:

"The checkbox must be unchecked."

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

  • правило IsTrue,
    которое проверяет, что значение равно true
  • правило IsNull,
    которое проверяет, что значение равно null
  • правило NotBlank,
    которое проверяет, что значение не пустое
  • класс Form,
    который представляет форму в Symfony
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить