NAME

HTML::FormFu::Validator - Validator Base Class

VERSION

version 2.07

SYNOPSIS

DESCRIPTION

METHODS

CORE VALIDATORS

HTML::FormFu::Validator::Callback

BEST PRACTICES

Try to avoid using callbacks if possible. Below is a more maintainable and reusable approach, which also keeps the code out of the controller.

A normal application's directory would contain:

lib/HTML/FormFu/Constraint/MyApp/
lib/HTML/FormFu/Validator/MyApp/
lib/HTML/FormFu/Plugin/MyApp/
etc.

Then, the form config file would just need:

validator: 'MyApp::SomeValidator'

And the class would be something like this:

package HTML::FormFu::Validator::MyApp::SomeValidator;

use Moose;
extends 'HTML::FormFu::Validator';

sub validate_value {
    my ( $self, $value, $params ) = @_;

    my $c = $self->form->stash->{context};

    return 1 if $c->model('DBIC')->is_valid($value);

    # assuming you want to return a custom error message
    # which perhaps includes something retrieved from the model
    # otherwise, just return 0
    die HTML::FormFu::Exception::Validator->new({
        message => 'custom error message',
    });
}

1;

AUTHOR

Carl Franks, cfranks@cpan.org

LICENSE

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Carl Franks <cpan@fireartist.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Carl Franks.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.