I have an entity User, which has $password with @AssertLength(min=6)
/**
* @var string The hashed password
* @ORMColumn(type="string")
* @AssertLength( min=6, minMessage="Password is too short (min 6 symbols)" )
*/
private $password;
I’m trying to generate a Login form using createFormBuilder
$LoginForm=$this->createFormBuilder(null,['data_class'=>User::class])
->add('email')
->add('password', ??? PasswordType::class ??? )
->getForm();
If I don’t set the ‘PasswordType::class’ for my second field (in createFormBuilder), it generates HTML with “type=’text'” field. The @AssertLenth seems to work fine (pattern=6, presents)
<input type="text" id="form_password" name="form[password]" required="required" pattern=".{6,}">
If I do set the ‘PasswordType::class’, the HTML field becomes “type=’password'”, but it completely forgets about minLength constraint…
<input type="password" id="form_password" name="form[password]" required="required">
So, at this point I have to choose between Text field (with minLength pattern) or Password field (which ignores my entity @AssertLength) =|
===
UPD: about setting the constraints directly in the ‘add()’
add('userName', TextType::class, ['constraints' => [new Length(['min' => 6])]])
generates empty (well, no constraints there) HTML aswell:
<input type="text" id="form_userName" name="form[userName]" required="required">
Source: Symfony Questions
Was this helpful?
0 / 0