php - component - symfony using form
Agregando un error especĂfico de campo desde el controlador en Symfony2 (1)
Tengo una validación compleja en mi formulario de Symfony y necesito poder asignar un error a un campo específico desde mi controlador. En este momento, tengo errores globales trabajando así:
$error = new formerror("There is an error with the form");
$form->addError($error);
Pero eso crea un error global, no uno vinculado a un campo específico.
¿Hay una manera de lanzar un error en un campo específico de mi controlador?
Gracias a un poco de ayuda sobre IRC (¡gracias @fkrauthan!) Se me ocurrió una respuesta.
Cada campo en SF2 es en realidad una instancia de formulario. Lo que debe hacer es acceder al objeto formulario del campo y agregar luego un error en él. Afortunadamente, Symfony proporciona un método para obtener un formulario / campo incrustado.
Aquí está mi código:
$error = new FormError("There is an error with the field");
$form->get(''field'')->addError($error);
Como algunas personas han señalado, deberá incluir la clase FormError en la parte superior de su archivo: use Symfony/Component/Form/FormError;