Mi validación pareceEstoy perdiendo la asociación de un error de un campo de formulario en Symfony2
Acme\UserBundle\Entity\User:
constraints:
- \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields:username, message: "Username already in use" }
- \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields:email, message: "Email address already in use" }
properties:
username:
- NotBlank: ~
- MinLength: { limit: 2, message: "Your username must have at least {{ limit }} characters." }
email:
- Email:
message: The email "{{ value }}" is not a valid email.
checkMX: true
Mi controlador como:
$form = $this->createForm(new RegistrationType());
$form->bindRequest($request);
if ($form->isValid()) {
//... save to db
}else{
$errors = $form->getErrors();
//... pass the errors back as json
}
Estoy tratando de construir un controlador de registro de usuarios que se envía a través de una solicitud ajax. Sin embargo, cuando se activan los errores en la validación, la variable $error
parece:
[2011-11-07 19:19:44] app.INFO: array (
0 =>
Symfony\Component\Form\FormError::__set_state(array(
'messageTemplate' => 'Email address already in use',
'messageParameters' =>
array (
),
)),
1 =>
Symfony\Component\Form\FormError::__set_state(array(
'messageTemplate' => 'Your username must have at least {{ limit }} characters.',
'messageParameters' =>
array (
'{{ value }}' => '1',
'{{ limit }}' => 2,
),
)),
) [] []
El problema es que no tengo idea de qué campo que corresponde al error. ¿Hay alguna forma de encontrar esa información para que cuando envíe la respuesta json, pueda asociar el mensaje de error con el campo correspondiente?
El uso de '' '$ form-> getErrors()' '' devuelve el errores, sin embargo '' '$ form-> get ('username') -> getErrors()' '' no devuelve errores aunque se envíen los mismos datos. Es como si los errores estuvieran asociados con la forma en general, en lugar de con cada campo. – ed209
¿Ha habilitado error_bubbling en cualquier lugar? – Kasheen
Sí, por ejemplo '' '$ builder-> add ('username', 'text', array ('error_bubbling' => true))' ' – ed209