NAME
DBIx::Class::HTML::FormFu - Fill a HTML::FormFu form from the database
and vice-versa
SYNOPSIS
# fill a form from the database
my $row = $schema->resultset('Foo')->find($id);
$row->fill_formfu_values( $form )
# populate the database from a submitted form
if ( $form->submitted && !$form->has_errors ) {
my $row = $schema->resultset('Foo')->find({ id => $params->{id} });
$row->populate_from_formfu( $form );
}
ATTRIBUTES
The fill_formfu_values and populate_from_formfu functions can both take
an optional hasref argument to process the field names from form field
name to database fieldname.
The hasref takes to arguments: prefix_col takes a string to add to the
begining of the form field names. suffix_col takes a string to add to
the end of the form field names.
Example
If you have the following form fields:
private_street
private_city
private_email
office_street
office_city
office_email
You most likely would like to save both datasets in same table:
my $private = $user->new_related( 'data', { type => 'private' } );
$private->populate_from_formfu( $form, { prefix_col => 'private_' } );
my $office = $user->new_related( 'data', { type => 'office' } );
$office->populate_from_formfu( $form, { prefix_col => 'office_' } );
The table needs the following rows:
id (not really needed)
street
city
email
type
user_id
FREQUENTLY ASKED QUESTIONS (FAQ)
If I have another column in the database that is not present on the form? How do I add a value to the form to still use 'populate_from_formfu'?
Use $form->add_valid( name => 'value' );
Example:
my $passwd = generate_passwd(); $form->add_valid( passwd =>
$passwd ); $resultset->populate_from_formfu( $form );
add_valid() works for fieldnames that don't exist in the form.
CAVEATS
To ensure your column's inflators and deflators are called, we have to
get / set values using their named methods, and not with "get_column" /
"set_column".
Because of this, beware of having column names which clash with
DBIx::Class built-in method-names, such as "delete". - It will have
obviously undesirable results!
SUPPORT
Project Page:
Mailing list:
Mailing list archives:
BUGS
Please submit bugs / feature requests to
(preferred) or
.
SUBVERSION REPOSITORY
The publicly viewable subversion code repository is at
.
If you wish to contribute, you'll need a GMAIL email address. Then just
ask on the mailing list for commit access.
If you wish to contribute but for some reason really don't want to sign
up for a GMAIL account, please post patches to the mailing list
(although you'll have to wait for someone to commit them).
If you have commit permissions, use the HTTPS repository url:
SEE ALSO
HTML::FormFu, DBIx::Class, Catalyst::Controller::HTML::FormFu
AUTHOR
Carl Franks
CONTRIBUTORS
Adam Herzog
Daisuke Maki
Mario Minati
COPYRIGHT AND LICENSE
Copyright (C) 2007 by Carl Franks
Based on the original source code of DBIx::Class::HTMLWidget, copyright
Thomas Klausner.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.8.8 or, at
your option, any later version of Perl 5 you may have available.