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

Π­Ρ‚Π° опция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, относящиСся ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρƒ. Бконфигурированная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π’Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€, Π½ΠΎ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ зависит ΠΎΡ‚ вас.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈΡΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ошибок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ ограничСния Π² Ρ„Ρ€ΠΎΠ½Ρ‚-эндС ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Π² зависимости ΠΎΡ‚ стСпСни слоТности ошибки.