Length

Length

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

Caution

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

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

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

  • Annotations
  • YAML
  • XML
  • PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 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;
}

Опции

min

тип: integer

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

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

max

тип: integer

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

charset

тип: string по умолчанию: UTF-8

Набор символов, используемый при вычислении длины значения. PHP-функция grapheme_strlen используется, если она доступна. Если нет, то используется PHP-функция mb_strlen, если она доступна. Если не доступна ни одна, то используется PHP-функция strlen.

minMessage

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

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

maxMessage

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

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

exactMessage

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

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

payload

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

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

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