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

Правило IdenticalTo

Правило IdenticalTo относится к классу ограничений Symfony\Component\Validator\Constraints\IdenticalTo и применяется к полям формы. Оно проверяет, что переданное значение строго равно (===) заданному значению. Первым параметром передаётся значение для сравнения, которое указывается в опции value. Если значение поля не идентично указанному, форма считается невалидной.

Синтаксис

use Symfony\Component\Validator\Constraints\IdenticalTo; new IdenticalTo( value: mixed, message: string );

Пример

Давайте создадим форму с полем code и повесим на него правило IdenticalTo, которое требует значение 'abcde':

<?php namespace App\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\IdenticalTo; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('code', TextType::class, [ 'constraints' => [ new IdenticalTo('abcde'), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([]); } } ?>

Давайте обработаем форму в контроллере и выведем результат валидации:

<?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()) { if ($form->isValid()) { echo 'valid'; } else { echo 'not valid'; } } return new Response('ok'); } } ?>

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

"valid"

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

"not valid"

Пример

Давайте создадим форму с полем count и повесим на него правило IdenticalTo, которое требует числовое значение 5:

<?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\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\IdenticalTo; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('count', IntegerType::class, [ 'constraints' => [ new IdenticalTo(5), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([]); } } ?>

Давайте обработаем форму в контроллере и выведем результат валидации:

<?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()) { if ($form->isValid()) { echo 'valid'; } else { echo 'not valid'; } } return new Response('ok'); } } ?>

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

"valid"

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

"not valid"

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

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