O problema:
Ao renderizar um formulário com subformulários embutidos no Symfony 1.2 (ou superior), você acabará com o symfony incluindo duas vezes os campos ocultos do formulário embutido se você chamar todos os métodos renderHiddenFields ().
Por exemplo:
<!-- viewSuccess.php -->
<!-- ... render some fields of the form ... -->
<?php echo $form['username'] ?>
<!-- render the hidden fields of the embedded form -->
<?php echo $form['EmbeddedForm']->renderHiddenFields() ?>
<!-- Now render the main form hidden fields -->
<?php echo $form->renderHiddenFields() ?>
Se $ form [‘EmbeddedForm’] contiver campos ocultos (isto é, sfWidgetFormInputHidden), eles serão renderizados duas vezes.
Como consertar:
Para evitar isso, você pode chamar $ form-> renderHiddenFields (false) no formulário principal. Isso desativará a recursão em subformulários.