Recently we were working on a project in which we needed to switch from forms auto-formatting themselves ( <?php echo $form;?>) to allow for much more customization in the output. While there is a Symfony Forms for Designers chapter in the forms documentation, it doesn’t help much for iterating over a form object and customizing the output. There is a simple foreach($form as $field) that will iterate over every field in the form. The problem with this is when you have embedded forms and you want to do something different with the formatting on them. This will iterate over all the fields and you will not know when the field is the embedded form or not. So we came up with the following which works:
This will work fine for a form with as many as single embedded forms. It allows you to easily use the same view for multiple forms and be able to customize their embedded forms easily. If you have only one form that you will be doing this with, and are worried about performance we recommend then not using a foreach loop and doing it by hand, this will save you on performance as you will not have as many if statements in each iteration.
Posted In: Symfony