Stop SonataAdmin / Symfony2 from creating empty objects with sonata_type_admin embedded admins
It might be caused by a missing 'required' => false
, no ?
protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('color', null, array('required' => true)) ->add('owner', null, array('required' => false)) ->add('leftFrontWheel', 'sonata_type_admin', array('required' => false, 'delete' => false)) ;}
Change your Wheel
form field for something like :
$formMapper // ... ->add('leftFrontWheel', 'sonata_type_admin', array( 'delete' => false, 'by_reference => true, 'required' => false, )) // ...
See by_reference
documentation
If it's not sufficient, use a prePersist hook in your parent admin class and manage which field you store. i.e. :
// Fire on submit, before the object persistingpublic function prePersist($object) if ($wheel = $object->getLeftFrontWheel()) { if (!$wheel->getYourNonNullableField()) { $object->setLefTFrontWheel(null); } }}