HTML::FormHandler::Manual::FromDFV(3) converting from Data::FormValidator


version 0.40065


Manual Index

Cheatsheet for converting from Data::FormValidator.


Information that's useful when switching from Data::FormValidator to HTML::FormHandler. There's not a lot here yet, so if you have something to add, patches are welcome.

In a general way, FormHandler doesn't have nearly so many ``special'' checks as Data::FormValidator. It would be possible to implement many of them, but there hasn't been much demand for them. So far FormHandler users seem to be satisfied with the ``do your own checks in a Perl method'' solution. Because of the greater complexity of FormHandler's data model - with Repeatable arrays and nested compounds, etc - it's somewhat harder to do some of them automatically.


In FormHandler, 'dependency' is the equivalent of 'dependency_group', without the key names.

The other variations of dependencies in DFV are not implemented in FormHandler, and would normally be done in a form's 'validate' sub.

trim, filters
A 'trim' filter is installed by default in FormHandler; it's a special version of an apply action, and can be set to a transform or Moose type. See the documentation in HTML::FormHandler::Field#trim.

Transforms and inflations/deflations do not change what is presented in the form unless you set the 'fif_from_value' flag on the field.

FV_length_between, FV_max_length, FV_min_length
Use text fields with 'minlength' and 'maxlength' attributes.
Perform your own checks in the form 'validate' sub.

    sub validate {
        my $self = shift;
        if( $self->field('one')->value eq $self->field('two')->value ) {


The simple constraints from Data::FormValidator::Constraints can be used directly in a FormHandler form:

    use Data::FormValidator::Constraints ('match_state');
    has_field 'my_state' => (
        apply => [ { check => \&match_state, message => 'Invalid State' } ] );
Use the 'Email' field type, or use the FH Moose Type, 'email'.

     has_field 'email' => ( type => 'Email' );
     -- or --
     use HTML::FormHandler::Types ('Email');
     has_field 'email' => ( apply => [ Email ] );


FormHandler Contributors - see HTML::FormHandler


This software is copyright (c) 2016 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.