У меня есть сущность User, у которой есть $ пароль с @Assert \ Length (min = 6)
/**
* @var string The hashed password
* @ORM\Column(type="string")
* @Assert\Length( min=6, minMessage="Password is too short (min 6 symbols)" )
*/
private $password;
Я пытаюсь создать форму для входа в систему с помощью createFormBuilder
$LoginForm=$this->createFormBuilder(null,['data_class'=>User::class])
->add('email')
->add('password', ??? PasswordType::class ??? )
->getForm();
Если я не установил PasswordType :: class для моего второго поля (в createFormBuilder), он генерирует HTML с полем "type = 'text'". @Assert \ Lenth, кажется, работает нормально (pattern = 6, представляют)
<input type="text" id="form_password" name="form[password]" required="required" pattern=".{6,}">
Если я установлю 'PasswordType :: class', поле HTML станет "type = 'password'" , но он полностью забывает об ограничении minLength ...
<input type="password" id="form_password" name="form[password]" required="required">
Итак, на этом этапе мне приходится выбирать между текстовым полем (с шаблоном minLength) или паролем (который игнорирует мою сущность @Assert \ Length) = |
===
UPD: об установке ограничений непосредственно в 'add ()'
add('userName', TextType::class, ['constraints' => [new Length(['min' => 6])]])
генерирует пустой (ну, там никаких ограничений) HTML также:
<input type="text" id="form_userName" name="form[userName]" required="required">