Проверка алфавита Symfony 4 без пробелов - PullRequest
0 голосов
/ 23 октября 2018

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

Как здесь:

private $username;

/**
 * @Assert\NotBlank()
 * @Assert\Length(max=4096)
 * @Assert\Type(type="alnum")

1 Ответ

0 голосов
/ 24 октября 2018

Самым мощным средством проверки для решения этой проблемы является ограничение Regex .

Для вашего случая (очень простого случая) достаточно использовать (см. Длина )

/** 
 * @Assert\Length(max=4096, minMessage="...", maxMessage="...") 
 * @Assert\Regex( 
 * pattern = "/^[a-z0-9]+$/i", 
 * htmlPattern = "^[a-zA-Z0-9]+$",
 * message="Your name must contain only letter or numbers"
 * ) 
 */

Можно объединить оба валидатора здесь только в одном ограничении валидатора, но имейте в виду, что вы теряете возможность показывать точное сообщение об ошибке, если у вас есть несколько условий (таких как длина и запретchars)

/** 
 * @Assert\Regex( 
 * pattern = "/^[a-z0-9]{1,4096}$/i", 
 * htmlPattern = "^[a-zA-Z0-9]{1,4096}$", 
 * message="Your name must contain only letter or numbers and must have length between 1 and 4096"
 * ) 
 */

Где {1,4096} - значения min и max для пределовдлина строки.

htmlPattern и message являются необязательными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...