New in symfony 1.2: God save the nested forms
In symfony 1.1, we introduced a new form sub-framework. It is a great step forward for symfony, even if the learning curve is a bit steep.
We worked a lot to make it even better for symfony 1.2, and more importantly simpler for newcomers.
One of the form framework strengths is its ability to deal with nested forms. A form can embed a form which in turn can also embed another form (and so on):
$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);
articleForm renders as show below:
Another great feature of the form framework is its ability to automatically
serialize forms. As the forms above are Propel ones, a simple call
$articleForm->save() will automatically update the
$article object with
the submitted and validated values and save it back to the database.
But there was a problem in symfony 1.1. The
author and the
objects were not saved automatically. So, you had to override the
method to get the validated data and update the objects manually.
Nothing impossible to do, but really annoying as the form framework
already had all the needed information to make it automatic.
This has been implemented in symfony 1.2 and so will be available with
the upcoming beta 2. That's right, a single call to
$form->save() will now update the article,
the author, and the company objects. That's a great news by itself, but there is another one: The new admin generator
also takes this new feature into account.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.