When you embed a form in Symfony, a label for the embedded form is injected into the parent form. For example: If I have a PersonForm and add this code $this->embedForm('Address', $addressForm), my PersonForm will now have an ‘Address’ label within it, in addition to the labels for the fields that make up the AddressForm. I’d like to keep the labels for the individual fields, but get rid of the ‘Address’ label, thereby making it appear that the two forms are really one.
It’s possible to override the form template and manually iterate over the form elements and echo them one by one, but I run into this situation frequently and I’d prefer to have Symfony handle this automatically.
Here is a simple way of disabling all labels. Add this method to
BaseFormif you do it frequently.If you only want to disable labels in the embedded form, disable them before embedding: