Length

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

Length

Валидирует, что длина заданной строки находится между некоторым минимальным и максимальным значением.

??????????? ? ???????? ??? ??????
????? Length
????????? LengthValidator

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

Чтобы верифицировать, что длина поля firstName класса находится между "2" и 50, вы можете захотеть добавить следующее:

  • Attributes
  • YAML
  • XML
  • PHP
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: 'Ваше имя должно быть хотя бы {{ limit }} символов в длину',
        maxMessage: 'Ваше имя не может быть больше {{ limit }} символов в длину',
    )]
    protected $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 }} ??????? (??????????) ????????

exactMessage

тип: string по умолчанию: Это значение должно иметь ровно {{ limit }} символов.

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

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

???????? ????????
{{ limit }} ?????? ????????? ?????
{{ value }} ??????? (??????????) ????????

groups

type: array | string

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 }} ??????? (??????????) ????????

min

тип: integer

Эта опция - это значение минимальной длины. Валидация будет неудачной, если длина заданного значения меньше, чем это минимальное значение.

This option is required when the max option is not defined.

Важно отметить, что значения null и пустые строки считаются всё равно валидными, даже если ограничение требовало минимальную длину. Валидаторы запускаются только если значение не null.

minMessage

тип: string по умолчанию: Это значение слишком короткое. Оно должно иметь {{ limit }} или больше символов.

Сообщение, отображаемое, если длина основоположного значеия меньше, чем опция min.

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

???????? ????????
{{ limit }} ??????????? ????????? ?????
{{ value }} ??????? (??????????) ????????

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.

payload

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

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

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