NAME¶
HTML::FormHandler::Manual::Errors - FormHandler error methods
VERSION¶
version 0.40057
SYNOPSIS¶
Manual Index
Errors and error messages for HTML::FormHandler.
DESCRIPTION¶
Errors are added to field or form objects by the field 'add_error' method or the
form 'add_form_error' method. FormHandler will perform the 'add_error' for you
for built-in validation or 'apply' actions. When performing your own
validation in a validation method, you must do the 'add_error' yourself.
Errors, along with 'input' and 'value' attributes, are collected in the
FormHandler 'result' objects. A number of error retrieving methods are
delegated to the field and form classes.
The existence (or not) of errors determines whether or not the form has been
'validated'.
- errors
- Returns an array of localized error strings (both field and form errors):
my @errors = $form->errors;
Note: this is a form method, not a result method. For the same thing from a
result object, use "$result->form_and_field_errors".
- has_errors
- Both 'form' errors and errors from the tree of subfields
if( $form->has_errors ) {
<do something>
}
- form_errors, all_form_errors
- Returns an arrayref / array of error strings on the form (not including
field errors).
foreach my $err ( $self->all_form_errors ) {
$output .= "<span class="error">$err</span>";
}
- has_form_errors
- Does the form have form_errors?
- add_form_error
- Add an error to the form which is not associated with a specific field.
sub validate {
my $self = shift;
unless( <some condition> ) {
$self->add_form_error('....');
}
}
- push_form_errors
- Add a non-localized error to the form.
Field methods¶
The most common error method is probably 'add_error', which you use in the
validation process.
sub validate_foo {
my ( $self, $field ) = @_;
unless ( <some_condition> ) {
$field->add_error('Error condition');
}
}
- errors
- Returns an array of error strings.
- has_errors
- Does the field have errors? Note that a compound field that contains
subfields with errors will not return true for this method. If you want to
know if there are errors in the subfields, do 'has_error_fields'.
- num_errors
- add_error
- Add an error to the field. Localization is performed.
- push_errors
- Add an error without localization.
- error_fields
- In a compound field (and its subclasses, like 'Repeatable'), the list of
fields with errors.
Result methods¶
The input, value, and error attributes are actually stored in the result
objects. Although most of the methods are delegated to the form and field
classes, there are times, such as when rendering (because you might be
rendering a result that's been peeled off of the form object), that you may
need to use result methods.
These are the main methods that you might need to use.
- has_errors
- errors
- error_results
- The results with errors; 'error_fields' is a wrapper around this.
Messages¶
The base field class and the field subclasses have some 'built-in' error
messages. These can be modified by setting the 'messages' hashref in the form
or the individual fields.
When a message is retrieved in a field with
"$field->get_message('upload_file_')" for example, the
'get_message' method will look first in user-set field specific messages, then
in user-supplied form messages, finally in messages provided by the field
classes.
package MyApp::Form;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
sub build_messages {
return { required => '....', my_message => '....' };
}
...
my $form = MyApp::Form->new( messages => { required => '...', ...} );
...
has_field 'my_field' => ( messages => { required => 'Please provide a my_field' },
required => 1 );
AUTHOR¶
FormHandler Contributors - see HTML::FormHandler
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2014 by Gerda Shank.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.