Solución al editar formulario con un input file en Symfony3 y 2

Vamos a solucionar el siguiente error:

The form’s view data is expected to be an instance of class Symfony\Component\HttpFoundation\File\File, but is a(n) string. You can avoid this error by setting the «data_class» option to null or by adding a view transformer that transforms a(n) string to an instance of Symfony\Component\HttpFoundation\File\File.

Este error se da cuando intentamos actualizar los datos de un input file de un formulario en Symfony2 y Symfony3. Esto es porque le estamos pasando un string que es el value del campo file(al editar los datos con el formulario) y necesita una instancia del objeto File del HttpFoundation, es decir, necesita solamente algo en $_FILES, en fin, para arreglar esto, tenemos que tener un campo file definido en la clase del formulario tal que así:

	->add('image', FileType::class,array(
				"label" => "Imagen:",
				"attr" =>array("class" => "form-control"),
				"data_class" => null
			))

Con esto ya funcionaria correctamente, ya que le indicamos que no restrinja los datos que le puedan llegar de ese campo.

Más información:
http://stackoverflow.com/questions/14423265/symfony-2-form-exception-when-modifying-an-object-that-has-a-filepicture-fie

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post