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

Правило DivisibleBy

Правило DivisibleBy относится к валидаторам Symfony и используется при работе с формами. Оно проверяет, что переданное значение делится без остатка на указанное число. Правило вешается на свойство сущности с помощью атрибута #[DivisibleBy]. Первым параметром передаётся делитель, вторым - сообщение об ошибке.

Синтаксис

#[DivisibleBy(value, message: message)]

Пример

Давайте создадим сущность Product с полем quantity, которое должно делиться на 5:

<?php namespace AppEntity; use SymfonyComponentValidatorConstraints as Assert; class Product { #[AssertDivisibleBy( 5, message: 'The value {{ value }} is not divisible by {{ compared_value }}.' )] private int $quantity = 0; public function getQuantity(): int { return $this->quantity; } public function setQuantity(int $quantity): void { $this->quantity = $quantity; } } ?>

Пример

Давайте проверим значение 10 с помощью валидатора:

<?php namespace AppController; use AppEntityProduct; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidatorValidatorInterface; class ProductController extends AbstractController { public function validate(ValidatorInterface $validator): Response { $product = new Product(); $product->setQuantity(10); $errors = $validator->validate($product); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('valid'); } } ?>

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

"valid"

Пример

Давайте проверим значение 7, которое не делится на 5:

<?php namespace AppController; use AppEntityProduct; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentValidatorValidatorValidatorInterface; class ProductController extends AbstractController { public function validate(ValidatorInterface $validator): Response { $product = new Product(); $product->setQuantity(7); $errors = $validator->validate($product); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('valid'); } } ?>

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

"The value 7 is not divisible by 5."

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

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