2009/4/1 Leanan Sidhe <the.leanan.si...@gmail.com>: > I have heard that TIMTOWTDI, but the only suggestions I've seen were in > regards to password fields and using DBIx::Class::DigestColumns. I need to > do some mathematical conversions on columns before the data is put into the > database. I'm trying to do it this way: > > > > my $elements_to_convert = $form->get_all_elements({ type => 'Text'}); > > foreach my $element (@{$elements_to_convert}) { > if ($element->attributes->{'class'} =~ /I-want-to-convert-this/){ > my $nested_name = $element->nested_name; > my $field_value = $form->param_value($nested_name); > $element->default(($field_value * $conversion)); > } > } > > However, nothing is working. I've tried $element->default($my_new_value), > $form->default_values($nested_name => $my_new_value), > $form->default_values({$nested_name => $my_new_value}) and > $form->add_valid($nested_name, $my_new_value}). [snip]
That extraneous curly in add_valid() doesn't compile - so I'm not sure whether you tried passing 2 args or a hash-ref. add_valid() should work, but takes 2 args - ( $name, $value ) However, I would recommend you use a Transformer instead, then you can just add it to each field in your config. Using a Transformer rather than a filter means any constraints will be run before the value is converted. elements: - name: foo transformers: - 'MyApp::ConvertFoo' Something like this should do: package HTML::FormFu::Transformer::MyApp::ConvertFoo; use strict; use base 'HTML::FormFu::Transformer'; use HTML::FormFu::Constants qw( $EMPTY_STR ); sub transformer { my ( $self, $value ) = @_; return $value if !defined $value || $value eq $EMPTY_STR; return $value * 'conversion'; } 1; _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu