tengo la siguiente situación:Symfony2: Cómo modificar un valor formulario antes de la validación
- un tipo de campo de formulario
date
- un patrón de validación como
dd.mm.YYYY
- un objeto auxiliar que convierte
12
en12.07.2012
o2.5
en02.05.2012
etc.
Mi pregunta es: ¿A dónde llamo el método que transforma el valor de entrada?
Cuando lo llamo desde el set
-metodo de la entidad, el valor en realidad se modifica. Pero al cargar el formulario nuevamente (por ejemplo, envío incompleto), se muestra el valor anterior (como 2.5
) y no el valor transformado (2.5.2012
). Ahora, ¿cómo le digo a la forma, que el valor ha cambiado dentro de la entidad?
Tal vez también hay otra forma de hacerlo en el medio:
$form->bindRequest($request);
// do some fancy stuff here
if ($form->isValid()) {}
PHP
Esto es de la Entidad:
/**
* @ORM\Column(type="datetime", nullable=true)
* @Assert\DateTime()
*/
protected $date_start;
Esto es de la Tipo:
$builder->add('date_start', 'datetime', array(
'label' => 'Start Datum/Uhrzeit',
'date_widget' => 'single_text',
'time_widget' => 'single_text',
'date_format' => 'dd.MM.yyyy',
'with_seconds' => false,
'required' => false,
));
He publicado una respuesta a continuación, pero si necesita más detalles no dude en publicar el código para su tipo de formulario y el modelo y probablemente pueda obtener más específico. – MDrollette