NAME
Catalyst::Model::FormFu - Speedier interface to HTML::FormFu for Catalyst
VERSION
version 0.001
SYNOPSIS
package MyApp
{
use parent 'Catalyst';
__PACKAGE__->config( 'Model::FormFu' => {
model_stash => { schema => 'MySchema' },
constructor => { config_file_path => 'myapp/root/forms' },
forms => {
form1 => 'form1.yaml',
form2 => 'form2.yaml',
]
} );
}
package MyApp::Controller::WithForms
{
use parent 'Catalyst::Controller';
sub edit :Local
{
my ($self, $c, @args) = @_;
my $form1 = $c->model('FormFu')->form('form1');
if ($form1->submitted_and_valid)
...
}
}
package MyApp::Model::FormFu
{
use parent 'Catalyst::Model::FormFu';
}
DESCRIPTION
Catalyst::Model::FormFu
is an alternative interface for using HTML::FormFu within Catalyst. It differs from Catalyst::Controller::HTML::FormFu in the following ways:
It initializes all required form objects when your app is started, and returns clones of these objects in your actions. This avoids having to call "load_config_file" in HTML::FormFu and "populate" in HTML::FormFu every time you display a form, potentially leading to performance improvements in persistent applications.
It does not inherit from Catalyst::Controller, and so is safe to use with other modules that do so, in particular Catalyst::Controller::ActionRole.
CONFIGURATION OPTIONS
Catalyst::Model::FormFu
accepts the following configuration options
- forms
-
A hashref where keys are the names by which the forms will be accessed, and the values are the configuration files that will be loaded for the respective forms.
- constructor
-
A hashref of options that will be passed to
HTML::FormFu->new(...)
for every form that is created. - model_stash
-
A hashref with a
stash
key whose value is the name of a Catalyst model class that will be place in the form stash for use by HTML::FormFu::Model::DBIC.
USAGE
Use the form
method of the model to fetch one or more forms by their names. The form is loaded with the current request parameters and processed.
SEE ALSO
AUTHOR
Peter Shangov <pshangov@yahoo.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Peter Shangov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.