GreaterThan

Дата обновления перевода 2023-09-25

GreaterThan

Валидирует, что значение больше, чем другое значение, определённое в опциях. Чтобы гарантировать, что значение больше чем, либо равно другому значению, см. GreaterThanOrEqual. Чтобы гарантровать, что значение меньше, чем другое значение, см. LessThan.

??????????? ? ???????? ??? ??????
????? GreaterThan
????????? GreaterThanValidator

Базовое применение

Следующие ограничения гарантируют, что:

  • количество siblings в Person больше, чем 5
  • age класса Person больше, чем 18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// src/Entity/Person.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Person
{
    #[Assert\GreaterThan(5)]
    protected int $siblings;

    #[Assert\GreaterThan(
        value: 18,
    )]
    protected int $age;
}

Сравнение дат

Это ограничение может быть использовано, чтобы сравнивать объекты DateTime с любой строкой даты, принятой конструктором DateTime. Например, вы можете проверить, чтобы дата была как минимум следующим от текущего днём:

1
2
3
4
5
6
7
8
9
10
// src/Entity/Order.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Order
{
    #[Assert\GreaterThan('today')]
    protected \DateTimeInterface $deliveryDate;
}

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

1
2
3
4
5
6
7
8
9
10
// src/Entity/Order.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Order
{
    #[Assert\GreaterThan('today UTC')]
    protected \DateTimeInterface $deliveryDate;
}

Класс DateTime также принимает относительные даты и время. Например, вы можете проверить, чтобы вышенаписанная дата доставки была как минимум на 5 часов позже текущего времени:

1
2
3
4
5
6
7
8
9
10
// src/Entity/Order.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Order
{
    #[Assert\GreaterThan('+5 hours')]
    protected \DateTimeInterface $deliveryDate;
}

Опции

value

тип: mixed [опция по умолчанию ]

Эта опция обязательна. Она определяет значеие для сравнения. Это может быть строка, число или объект.

message

тип: string по умолчанию: Это значение должно быть больше, чем {{ compared_value }}.

Это сообщение будет отображено, если значение не больше, чем сраниваемое значение.

Вы можете использовать следующие параметры в этом сообщении:

???????? ????????
{{ compared_value }} ?????? ?????
{{ compared_value_type }} ????????? ??? ????????
{{ value }} ??????? (??????????) ????????

Дата обновления перевода 2024-07-25

payload

тип: mixed по умолчанию: null

Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.

Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.

Дата обновления перевода 2023-09-24

propertyPath

тип: string по умолчанию: null

Определяет свойство объекта, значение которого используется, чтобы провести сравнение.

Например, если вы хотите сравнить свойство $endDate некоторого объекта касательно свойства $startDate того же объекта, используйте propertyPath="startDate" в ограничении сравнения $endDate.

value

тип: mixed [опция по умолчанию ]

Эта опция обязательна. Она определяет значеие для сравнения. Это может быть строка, число или объект.