[Catalyst] FormBuilder validation using a sub_routine?

RA Jones ra.jones at dpw.clara.co.uk
Tue May 1 20:13:48 GMT 2007


Using CC::FormBuilder and a CGI::FormBuilder::Source::File .fb config 
file. The documentation for C::F::S::F suggest it is possible to use a 
reference to a sub-routine for config variables, eg:

state:
   options:  \&getstates
   sortopts: \&sortstates

but where would the getstates() & sortstates() methods go - presumably 
in the controller that called the formbuilder method?

But what I really want to do is the related use of a method in a 
validation step, and cannot get it to work from the .fb file this way:

my_field:
   validate: \&my_validation_routine

so I overloaded the field definition in the controller, like this:

$form->field(
   name => 'my_field',
   validate => my_validation_routine( $c->req->param('foo') ),
);

Firstly it seems a bit of an ugly fix, and secondly it seems 
counter-intuitive as the validation_routine() needs to return undef if 
the field validates, as returning a defined value like 1 or 'ok' or even 
0 triggers the 'failed validation' flag in the $form object. Presumably 
this is a consequence of FormBuilder expecting a regex here?
-- 
Richard Jones
Leeds, UK



More information about the Catalyst mailing list