This portion of the tutorial explores L<HTML::FormFu|HTML::FormFu> 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::FormFu version 0.03006.
+using HTML::FormFu version 0.03007.
See
L<Catalyst::Manual::Tutorial::AdvancedCRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
# Create a new book
my $book = $c->model('DB::Books')->new_result({});
# Save the form data for the book
- $form->save_to_model($book);
+ $form->model->update($book);
# Set a status message for the user
$c->flash->{status_msg} = 'Book created';
# Return to the books list
# is shorthand for "$form->submitted && !$form->has_errors"
if ($form->submitted_and_valid) {
# Save the form data for the book
- $form->save_to_model($book);
+ $form->model->update($book);
# Set a status message for the user
$c->flash->{status_msg} = 'Book edited';
# Return to the books list
# Add the authors to it
$select->options(\@authors);
# Populate the form with existing values from DB
- $form->defaults_from_model($book);
+ $form->model->default_values($book);
}
# Set the template
=item *
If the form has been submitted and passes validation, we skip creating a
-new book and just use C<$form-E<gt>save_to_model> to update the existing
+new book and just use C<$form-E<gt>model-E<gt>update> to update the existing
book.
=item *
If the form is being displayed for the first time (or has failed
validation and it being redisplayed), we use
- C<$form-E<gt>default_from_model> to populate the form with data from the
+ C<$form-E<gt>model-E<gt>default_values> to populate the form with data from the
database.
=back
be returned to the book list with a "Book edited" message at the top in
green. Experiment with other edits to various books.
+=head2 More Things to Try
+
+You are now armed with enough knowledge to be dangerous. You can keep
+tweaking the example application; some things you might want to do:
+
+=over 4
+
+=item *
+
+Add an appropriate ACL to the new Edit function.
+
+=item *
+
+Cleanup the List page so that the Login link only displays when the user
+isn't logged in and the Logout link only displays when a user is logged
+in.
+
+=item *
+
+Add a more sensible policy for when and how users and admins can do
+things in the CRUD cycle.
+
+=item *
+
+Support the CRUD cycle for authors.
+
+=back
+
+Or you can proceed to write your own application, which is probably the
+real reason you worked through this Tutorial in the first place.
=head2 Config::General Config for this tutorial