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

Правило GreaterThanOrEqual

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

Правило удобно использовать для проверки числовых полей: возраста, количества, цены, рейтинга и других показателей, которые не должны опускаться ниже допустимого минимума.

Синтаксис

#[Assert\GreaterThanOrEqual(value)]

В параметре value задаётся число, с которым сравнивается значение поля. Также доступны параметры message и groups.

Пример

Давайте создадим сущность с полем quantity и навесим на него правило GreaterThanOrEqual со значением 1:

<?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class Product { #[Assert\GreaterThanOrEqual(1)] private int $quantity = 0; public function getQuantity(): int { return $this->quantity; } public function setQuantity(int $quantity): void { $this->quantity = $quantity; } } ?>

Теперь проверим значение 0 через валидатор:

<?php namespace App\Controller; use App\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class ProductController extends AbstractController { #[Route('/product', name: 'product_check')] public function check(ValidatorInterface $validator): Response { $product = new Product(); $product->setQuantity(0); $errors = $validator->validate($product); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('valid'); } } ?>

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

Object(App\Entity\Product).quantity: This value should be greater than or equal to 1.

Пример

Давайте передадим значение 5 и убедимся, что валидация проходит успешно:

<?php namespace App\Controller; use App\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class ProductController extends AbstractController { #[Route('/product', name: 'product_check')] public function check(ValidatorInterface $validator): Response { $product = new Product(); $product->setQuantity(5); $errors = $validator->validate($product); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('valid'); } } ?>

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

"valid"

Пример

Давайте используем правило в форме через constraints у поля quantity:

<?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 as Assert; class ProductType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('quantity', IntegerType::class, [ 'constraints' => [ new Assert\GreaterThanOrEqual([ 'value' => 1, 'message' => 'Количество должно быть не меньше {{ compared_value }}.', ]), ], ]); } } ?>

Если пользователь введёт 0, форма вернёт ошибку с текстом:

"Количество должно быть не меньше 1."

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

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