NAME

DBIx::Class::Validation - Validate all data before submitting to your database.

SYNOPSIS

In your base DBIC package:

__PACKAGE__->load_components(qw/... Validation/);

And in your subclasses:

__PACKAGE__->validation(
  module => 'FormValidator::Simple',
  profile => { ... },
  auto => 1,
);

And then somewhere else:

eval{ $obj->validate() };
if( my $results = $EVAL_ERROR ){
  ...
}

METHODS

validation

__PACKAGE__->validation(
  module => 'FormValidator::Simple',
  profile => { ... },
  auto => 1,
);

Calls validation_module(), validation_profile(), and validation_auto() if the corresponding argument is defined.

validation_module

__PACKAGE__->validation_module('Data::FormValidator');

Sets the validation module to use. Any module that supports a check() method just like Data::FormValidator's can be used here, such as FormValidator::Simple.

Defaults to FormValidator::Simple.

validation_profile

__PACKAGE__->validation_profile(
  { ... }
);

Sets the profile that will be passed to the validation module.

validation_auto

__PACKAGE__->validation_auto( 1 );

This flag, when enabled, causes any updates or inserts of the class to call validate() before actually executing.

validate

$obj->validate();

Validates all the data in the object against the pre-defined validation module and profile. If there is a problem then a hard error will be thrown. If you put the validation in an eval you can capture whatever the module's check() method returned.

auto_validate

__PACKAGE__->auto_validate( 0 );

Turns on and off auto-validation. This feature makes all UPDATEs and INSERTs call the validate() method before doing anything. The default is for auto-validation to be on.

Defaults to on.

AUTHOR

Aran C. Deltac <bluefeet@cpan.org>

LICENSE

You may distribute this code under the same terms as Perl itself.