Length
Дата обновления перевода 2024-07-25
Length
Валидирует, что длина заданной строки находится между некоторым минимальным и максимальным значением.
??????????? ? | ???????? ??? ?????? |
????? | Length |
????????? | LengthValidator |
Базовое применение
Чтобы верифицировать, что длина поля firstName
класса находится между "2"
и 50
, вы можете захотеть добавить следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Entity/Participant.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Participant
{
#[Assert\Length(
min: 2,
max: 50,
minMessage: 'Your first name must be at least {{ limit }} characters long',
maxMessage: 'Your first name cannot be longer than {{ limit }} characters',
)]
protected string $firstName;
}
Note
As with most of the other constraints, null
is
considered a valid value. This is to allow the use of optional values.
If the value is mandatory, a common solution is to combine this constraint
with NotNull.
Опции
charset
тип: string
по умолчанию: UTF-8
Набор символов, который будет использовать при вычислении длины значения с PHP-функциями mb_check_encoding и mb_strlen.
charsetMessage
тип: string
по умолчанию: Это значение не совпадает с ожидаемым набором символов {{ charset }}.
Сообщение, которое будет отображено, если значение не использует заданный charset.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ charset }} |
????????? ????? ???????? |
{{ value }} |
??????? (??????????) ???????? |
countUnit
тип: string
по умолчанию: Length::COUNT_CODEPOINTS
Единица счёта символов, используемая для проверки длины. По умолчанию используется mb_strlen, которая считает кодовые точки Unicode.
Может быть одной из следующих констант класса Length:
COUNT_BYTES
: Использует strlen для подсчёта длины строки в байтах.COUNT_CODEPOINTS
: Использует mb_strlen для подсчёта длины строки в точках кода Unicode. Такое поведение было единственным до Symfony 6.2, а с Symfony 6.3 используется по умолчанию. Простые (многобайтовые) символы Unicode считаются за 1 символ, в то время как, например, последовательности ZWJ, состоящие из эмоджи, считаются за несколько символов.COUNT_GRAPHEMES
: Использует grapheme_strlen для подсчёта длины строки в графемах, т.е. даже эмоджи и ZWJ-последовательности из составленных эмоджи считаются за 1 символ.
exactly
тип: integer
Эта опция - это точное значение длины. Валидация будет неуспешной, если длина заданного значения точно не совпадает с этим значением.
Note
Эта опция устанавливается по умолчанию при использовании ограничения Length
без передачи ему какого-либо именованного аргумента. Это означает, что, например,
#[Assert\Length(20)]
и #[Assert\Length(exactly: 20)]
эквивалентны.
exactMessage
тип: string
по умолчанию: Это значение должно иметь ровно {{ limit }} символов.
Сообщение, отображаемое, если минимальное и максимальное значения равны, а длина основоположного значения не равняется точно этому значению.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
groups
type: array
| string
default: null
It defines the validation group or groups of this constraint. Read more about validation groups.
max
тип: integer
Эта опция - это значение максимальной длины. Валидация будет неудачной, если длина заданного значения больше, чем это минимальное значение.
This option is required when the min
option is not defined.
maxMessage
тип: string
по умолчанию: Это значение слишком длинное. Оно должно иметь {{ limit }} или меньше символов.
Сообщение, отображаемое, если длина основоположного значения больше, чем опция max.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
min
тип: integer
Эта опция - это значение минимальной длины. Валидация будет неудачной, если длина заданного значения меньше, чем это минимальное значение.
This option is required when the max
option is not defined.
Важно отметить, что значения null
и пустые строки считаются всё равно валидными,
даже если ограничение требовало минимальную длину. Валидаторы запускаются только
если значение не null
.
minMessage
тип: string
по умолчанию: Это значение слишком короткое. Оно должно иметь {{ limit }} или больше символов.
Сообщение, отображаемое, если длина основоположного значеия меньше, чем опция min.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
normalizer
type: a PHP callable default: null
This option allows to define the PHP callable applied to the given value before checking if it is valid.
For example, you may want to pass the 'trim'
string to apply the
trim PHP function in order to ignore leading and trailing
whitespace during validation.
Дата обновления перевода 2024-07-25
payload
тип: mixed
по умолчанию: null
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.