Правило 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,
которое проверяет, что число больше заданного