Edit: here is github with full code to reproduce the problem
I have the following entity
class Place { use Traits\HasId; private $imageFile = null; protected $image; }
In the following form
class AdminPlaceType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $transformer = new HasImageTransformer(); $builder->add('imageFile')->addModelTransformer($transformer); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(['data_class' => 'AppBundle\Entity\Place']); } }
And the next model transformer
class HasImageTransformer implements DataTransformerInterface { public function transform($hasImage) { return $hasImage; } public function reverseTransform($hasImage) { $file = $hasImage->getImageFile(); $myImage = new MyImage(); $myImage->setData(file_get_contents($file->getPathName())) $myImage->setMimeType($file->getMimeType()); $hasImage->setImage($myImage); } }
I can upload the correct image and the form will be saved to the database correctly.
However, if I submit an incorrect image (for example, a .txt file), the form is saved in the database without errors
However, if I remove addModelTransformer from the form, then I got the correct validation error
This file is not a valid image.
since my transformer does not change the original imageFile field, I wonder what might cause this problem.
I am using php7 and symfony3.3.4
source share