Length
Дата оновлення перекладу 2024-05-29
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;
}
Дата оновлення перекладу 2022-12-20
Note
Як і у більшості інших обмежень, null
вважається валідним значенням.
Це для того, щоб дозволити використання опціональних значень. Якщо значення
є обовʼязковим, розповсюдженим рішенням буде комбінація цього обмеження з
NotNull.
Опції
charset
тип: string
за замовчуванням: UTF-8
Набір символів для використання при обчисленні довжини значення з PHP-функціями mb_check_encoding та mb_strlen.
charsetMessage
тип: string
за замовчуванням: Це значення не співпадає з очікуваним набором символів {{ 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 }} |
??????? ??????? ???????? |
Дата оновлення перекладу 2023-09-24
groups
тип: array
| string
за замовчуванням: null
Визначає групу або групи валідації обмеження. Прочитайте більше про групи валідації.
max
тип: integer
Ця обовʼязкова опція - це значення довжини "max". Валідація буде невдалою, якщо довжина заданого значення більше, ніж це мінімальне значення.
Ця опція обовʼязкова, коли опція min
не визначена.
maxMessage
тип: string
за замовчуванням: Це значення занадто довге. Воно повинно мати {{ limit }} або менше символів.
Повідомлення, відображене, якщо довжина значення, що лежить в основі, більша, ніж опція max.
Ви можете використати наступні параметри у цьому повідомленні:
???????? | ???? |
---|---|
{{ limit }} |
????? ????????? ??????? |
{{ value }} |
??????? (?????????) ???????? |
{{ value_length }} |
??????? ??????? ???????? |
min
тип: integer
Ця обовʼязкова опція - це значення довжини "min". Валідація буде невдалою, якщо довжина заданого значення менша, ніж це мінімальне значення.
Ця опція обовʼязкова, коли опція max
не визначена.
Важливо відмітити, що значення NULL та порожні рядки все одно вважаються валідними, навіть якщо обмеження вимагало мінімальної довжини. Валідатори запускаються лише якщо значення не порожнє.
minMessage
тип: string
за замовчуванням: Це значення занадто коротке. Воно повинно мати {{ limit }} або більше символів.
Повідомлення, відображене, якщо довжина значення, що лежить в основні, менша ніж опція min.
Ви можете використати наступні параметри у цьому повідомленні:
???????? | ???? |
---|---|
{{ limit }} |
????? ????????? ??????? |
{{ value }} |
??????? (?????????) ???????? |
{{ value_length }} |
??????? ??????? ???????? |
Дата оновлення перекладу 2022-12-20
normalizer
тип: PHP-викличне за замовчуванням: null
Ця опція дозволяє вам визначати PHP-викличне, застосоване до заданого значення до перевірки, чи є воно валідним.
Наприклад, ви можете захотіти передати рядок 'trim'
для застосування
PHP-функції trim, щоб ігнорувати початкові та замикаючі пробіли
під час валідації.
Дата оновлення перекладу 2024-05-29
payload
тип: mixed
за замовчуванням: null
Ця опція може бути використана, щоб додати довільні дані, специфічні для домену, до обмеження. Сконфігуроване корисне навантаження не використовується компонентом Validator, але його обробка повністю залежить від вас.
Наприклад, ви можете захотіти використати декілька рівнів помилок, щоб представити неуспішні обмеження по-різному у фронтенді, залежно від серйозності помилки.