X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2F09_AdvancedCRUD%2F09_FormHandler.pod;h=8db2e5f020466de133bc1f91feadb00c097d9c17;hb=477a6d5b13f55eb335979812080e4a11217f19d6;hp=1298e2b55be9449861c4a301d41ae94c84a30c2c;hpb=9372a4db010f4d7d0478e8152474cae5943b2993;p=catagits%2FCatalyst-Manual.git diff --git a/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormHandler.pod b/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormHandler.pod index 1298e2b..8db2e5f 100644 --- a/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormHandler.pod +++ b/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormHandler.pod @@ -56,15 +56,16 @@ L =head1 DESCRIPTION -This portion of the tutorial explores L and -how it can be used to manage forms, perform validation of form input, -as well as save and restore data to/from the database. This was written -using HTML::FormHandler version 0.28001. +This portion of the tutorial explores +L and how it can be used to manage +forms, perform validation of form input, and save and restore data +to or from the database. This was written using HTML::FormHandler version +0.28001. See -L +L for additional form management options other than -L. +L. =head1 Install HTML::FormHandler @@ -75,9 +76,9 @@ from CPAN: sudo cpan HTML::FormHandler::Model::DBIC -It will install L as a prereq. +It will install L as a prerequisite. -Also add: +Also, add: requires 'HTML::FormHandler::Model::DBIC'; @@ -85,13 +86,13 @@ to your C. =head1 HTML::FormHandler FORM CREATION -This section looks at how L can be used to +This section looks at how L can be used to add additional functionality to the manually created form from Chapter 4. =head2 Using FormHandler in your controllers -FormHandler doen't have a Catalyst base controller, because interfacing +FormHandler doesn't have a Catalyst base controller, because interfacing to a form is only a couple of lines of code. =head2 Create a Book Form @@ -149,9 +150,9 @@ Add the following methods: $c->stash( template => 'books/form.tt2', form => $form ); $form->process( item => $book, params => $c->req->params ); return unless $form->validated; - $c->flash( message => 'Book created' ); - # Redirect the user back to the list page - $c->response->redirect($c->uri_for($self->action_for('list'))); + # Set a status message for the user & return to books list + $c->response->redirect($c->uri_for($self->action_for('list'), + {mid => $c->set_status_msg("Book created")})); } These two methods could be combined at this point, but we'll use the 'form' @@ -221,15 +222,15 @@ Add range constraints to the 'rating' field: has_field 'rating' => ( type => 'Integer', range_start => 1, range_end => 5 ); The 'authors' relationship is a 'many-to-many' pseudo-relation, so this field -can be set to Multiple to allow the selection of multiple authors and make it +can be set to Multiple to allow the selection of multiple authors; also, make it required: has_field 'authors' => ( type => 'Multiple', label_column => 'last_name', required => 1 ); -Note: FormHandler automatically strips whitespace at the beginning or end of fields. -If you want some other kind of stripping (or none) you can specify it explicitly. -(see L) +Note: FormHandler automatically strips whitespace at the beginning and +end of fields. If you want some other kind of stripping (or none) you +can specify it explicitly; see L. =head2 Try Out the Updated Form