En symfony 1.1, introducimos el nuevo sub-framework de formularios. un gran paso para symfony, aun cuando la curva de aprendizaje sea un poco empinada.

Trabajamos mucho para hacerlo aun mejor
para symfony 1.2, y mas importante mas simple para los mas novatos.

Una de las fortalezas del framework de formularios es la capacidad de tratar con formularios anidados.
Un formulario que puede ser embebido en otro formulario el cual también puede ser embebido en otro formulario (y así sucesivamente):

$article = ArticlePeer::doSelectOne(new Criteria());

 
$articleForm = new ArticleForm($article);
$authorForm = new AuthorForm($article->getAuthor());

$companyForm = new AuthorForm($article->getAuthor()->getCompany());

 
$authorForm->embedForm('company', $companyForm);
$articleForm->embedForm('author', $authorForm);

 

El articleForm se muestra como sigue:

Embedded forms

Otra gran característica del framework de formularios es la capacidad de serializar formularios automaticamente. Como los formularios anteriores son de Propel, una simple llamada a $articleForm->save() automaticamente actualizara el objeto $article con los valores enviados y validados para grabarlos en la base de datos.

Pero habia un problema en symfony 1.1. Los objetos author y company
no eran guardados automáticamente. Entonces, tenias que sobreescribir el método save() para poder validar y actualizar los objetos manualmente.
Nada imposible de lograr, pero realmente molesto si tenemos un framework
que ya tiene toda la información necesaria para hacerlo automáticamente.

Esto ha sido implementado en symfony 1.2 y esta disponible desde la beta 2. Eso es, una única llamada a $form->save() ahora actualizara los objetos articulo, autor, y compania. Es una gran noticia, pero hay otra mas: El nuevo generador de admin también tiene en cuenta esta nueva característica.

La presente, es una traducción al castellano realizada por Roberto G. Puentes Diaz,
sobre el artículo new-in-symfony-1-2-god-save-the-nested-forms de Fabien Potencier.

« »