Range
Дата обновления перевода 2023-09-25
Range
Валидирует, что заданное число находится между некоторым минимальным и максимальным числом.
??????????? ? | ???????? ??? ?????? |
????? | Range |
????????? | RangeValidator |
Базовое применение
Чтобы убедиться, что поле класса height
находится между 120
и 180
, вы можете добавить следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// src/Entity/Participant.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Participant
{
#[Assert\Range(
min: 120,
max: 180,
notInRangeMessage: 'You must be between {{ min }}cm and {{ max }}cm tall to enter',
)]
protected int $height;
}
Диапазон дат
Это ограничение может быть использовано для сравнения объектов DateTime
с
диапазоном дат. Минимальная и максимальная даты диапазона должны быть заданы,
как любая строка даты приемлемая конструктором DateTime. Например, вы можете
проверить, чтобы дата находилась в текущем году, таким образом:
1 2 3 4 5 6 7 8 9 10 11 12 13
// src/Entity/Event.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Event
{
#[Assert\Range(
min: 'first day of January',
max: 'first day of January next year',
)]
protected \DateTimeInterface $startDate;
}
Помните, что PHP будет использовать часовой пояс, сконфигурированный сервером, чтобы интерпретировать эти данные. Если вы хотите изменить часовой пояс, добавьте его в начале строки даты:
1 2 3 4 5 6 7 8 9 10 11 12 13
// src/Entity/Event.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Event
{
#[Assert\Range(
min: 'first day of January UTC',
max: 'first day of January next year UTC',
)]
protected \DateTimeInterface $startDate;
}
Класс DateTime
также принимает относительные даты и время. Например, вы можете
проверить, чтобы дата доставки начиналась в течение следующих пяти часов, таким образом:
1 2 3 4 5 6 7 8 9 10 11 12 13
// src/Entity/Order.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Order
{
#[Assert\Range(
min: 'now',
max: '+5 hours',
)]
protected \DateTimeInterface $deliveryDate;
}
Опции
groups
type: array
| string
default: null
It defines the validation group or groups of this constraint. Read more about validation groups.
invalidDateTimeMessage
тип: string
по умолчанию: Это значение должно быть валидным числом.
Сообщение, отображённое, когда значения min
и max
являются датами и временем
PHP, а заданное значение - нет.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ value }} |
??????? (??????????) ???????? |
invalidMessage
тип: string
по умолчанию: Это значение должно быть валидным числом.
Сообщение, отображённок, когда значения min
и max
числовые (в соответствии
с PHP-функцией is_numeric), а заданное значение - нет.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ value }} |
??????? (??????????) ???????? |
{{ label }} |
??????????????? ????? ???? ????? |
max
тип: number
или string
(формат даты)
Эта обязательная опция является максимальным значением. Валидация будет неуспешной, если заданное значение будет больше минимального значения.
maxMessage
тип: string
по умолчанию: Это значение должно быть {{ limit }} или меньше.
Сообщение, отбражённое, если основоположное значение больше, чем опция max, а опция min не была определена (если определены обе, используйте notInRangeMessage).
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ limit }} |
??????? ????? |
{{ value }} |
??????? (??????????) ???????? |
maxPropertyPath
тип: string
Определяет свойство объекта, чьё значение используется как опция max
.
Например, если вы хотите сравнить свойство $submittedDate
некоторого объекта, относительно
свойства $deadline
того же объекта, используйте maxPropertyPath="deadline"
в
ограничении диапазона $submittedDate
.
Tip
При использовании этой опции, её значение доступно в сообщении об ошибке, как
заполнитель {{ max_limit_path }}
. Хотя она не предназначается для использования
в отображении сообщений об ошибках конечным пользователям, она полезна при использовании
API для построения логики отображния на клиентской стороне.
min
тип: number
или string
(формат даты)
Эта обязательная опция является минимальным значением. Валидация будет неуспешной, если заданное значение будет меньше минимального значения.
minMessage
тип: string
по умолчанию: Это значение должно быть {{ limit }} или больше.
Сообщение, отбражённое, если основоположное значение меньше, чем опция min, а опция max не была определена (если определены обе, используйте notInRangeMessage).
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????? |
{{ value }} |
??????? (??????????) ???????? |
minPropertyPath
тип: string
Определяет свойство объекта, чьё значение используется как опция min
.
Например, если вы хотите сравнить свойство $endDate
некоторого объекта, относительно
свойства $startDate
того же объекта, используйте minPropertyPath="startDate"
в
ограничении диапазона $endDate
.
Tip
При использовании этой опции, её значение доступно в сообщении об ошибке, как
заполнитель {{ min_limit_path }}
. Хотя она не предназначается для использования
в отображении сообщений об ошибках конечным пользователям, она полезна при использовании
API для построения логики отображния на клиентской стороне.
notInRangeMessage
тип: string
по умолчанию: Это значение должно быть между {{ min }} и {{ max }}.
Сообщение, которое будет отображено, если основоположное значение меньше, чем опция min или больше, чем опция max.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ max }} |
??????? ????? |
{{ min }} |
?????? ????? |
{{ value }} |
??????? (??????????) ???????? |
Дата обновления перевода 2024-07-25
payload
тип: mixed
по умолчанию: null
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.