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

Правило LessThanOrEqual

Правило LessThanOrEqual относится к группе ограничений валидации Symfony и применяется к полям формы. Оно проверяет, что переданное значение меньше или равно числу, указанному в параметре value. Если значение больше, форма считается невалидной. Правило вешается на поле через атрибут LessThanOrEqual или добавляется в опции поля.

Синтаксис

#[LessThanOrEqual(value: number, message: 'text')]

Пример

Давайте создадим форму с полем count и навесим на него правило LessThanOrEqual со значением 10:

<?php namespace App\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Validator\Constraints\LessThanOrEqual; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('count', IntegerType::class, [ 'constraints' => [ new LessThanOrEqual([ 'value' => 10, 'message' => 'The value must be less than or equal to 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('valid'); } return new Response('invalid'); } } ?>

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

"valid"

Пример

Давайте отправим в форму значение, которое превышает допустимое, например 15:

<?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('valid'); } $errors = $form->getErrors(true); foreach ($errors as $error) { return new Response($error->getMessage()); } return new Response('invalid'); } } ?>

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

"The value must be less than or equal to 10."

Пример

Давайте используем правило LessThanOrEqual с атрибутом над свойством сущности:

<?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class Article { #[Assert\LessThanOrEqual( value: 100, message: 'The count must be less than or equal to 100.' )] private int $count = 0; public function getCount(): int { return $this->count; } public function setCount(int $count): void { $this->count = $count; } } ?>

Теперь создадим форму на основе этой сущности:

<?php namespace App\Form; use App\Entity\Article; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\IntegerType; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('count', IntegerType::class); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Article::class, ]); } } ?>

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

"valid"

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

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