El mensaje de error no se muestra cuando la contraseña no coincide con su confirmación.
Estoy tratando de mostrar un mensaje de error cuando la contraseña no coincide con su confirmación.
Aquí está el código relevante en el archivo de clase del formulario:
->add('password', RepeatedType::class, array(
'required' => true,
'invalid_message' => 'La contraseña y su confirmación no son iguales',
'type' => PasswordType::class,
'first_options' => array('label' => false),
'second_options' => array('label' => false),
))
Y aquí está el código relevante en Twig:
<div class="control-group">
<div class="input-prepend">
{{ form_row(registrationForm.password.first ,{'label':false,'attr':{'placeholder':'Contraseña','name':'password1','class':'form-control','id':'password1','required data-error':'Por favor, ingrese su contraseña'}} ) }}
</div>
</div>
<div class="control-group">
<div class="input-prepend">
{{ form_row(registrationForm.password.second ,{'label':false,'attr':{'placeholder':'Confirmación de contraseña','name':'password2','class':'form-control','id':'password2','required data-error':'Por favor, confirme su contraseña'}} ) }}
</div>
</div>
El problema es que cuando se ingresan contraseñas diferentes y se valida el formulario, el mensaje de error esperado no se muestra. ¿Tienes alguna idea de cómo solucionarlo?
davy.ai
El problema podría estar relacionado con la falta de restricciones de validación en el archivo de la clase de formulario de Symfony. Puede utilizar el componente de validación integrado de Symfony para agregar restricciones para la confirmación de la contraseña. Aquí tienes un ejemplo:
En este ejemplo, agregamos tres restricciones de validación para el campo de confirmación de contraseña:
NotBlank
para asegurarnos de que el campo no esté vacío,Length
para asegurarnos de que la contraseña tenga al menos 8 caracteres yEqualTo
para asegurarnos de que la contraseña y el campo de confirmación coincidan. La opciónpropertyPath
de la restricciónEqualTo
apunta al campopassword.first
para que pueda comparar su valor con el valor del campo de confirmación.Con estas restricciones agregadas, Symfony automáticamente validará el formulario y mostrará el mensaje de error cuando los campos de contraseña y confirmación no coincidan.