[Catalyst] Class::DBI::FromForm;

Krzysztof Krzyzaniak eloy at kofeina.net
Tue Jul 26 23:30:02 CEST 2005


Marcello wrote:
> Krzysztof Krzyzaniak ha scritto:
> 
>>I need some explanation. I am quite fresh with Class::DBI, previously 
>>always I've used only DBI with explicite SQL code. Now I am trying avoid 
>>using sql code (for fun, for test) and now I stuck.
>>
>>I have some HTML form, which send to controller some data:
>>
>>sub do_add : Local
>>{
>>    my ($self, $c) = @_;
>>
>>    if ( $c->req->params->{'upload_file'} eq 'yes' )
>>    {
>>    ... some parsing & checking there
>>
>>        TrackCD::M::CDBI::Record->create_from_form( \%hash );
>>        $c->forward('/tcd/record/list');
>>    }
>>}
>>
>>I have of course Model for TrackCD::M::CDBI::Record (with demanded 
>>plugins) but I need information how to build %hash - maybe there is some 
>>'easy and magic' way?
>>
>>  eloy
> 
> 
> You should use
> Catalyst::Plugin::FillInForm and
> Catalyst::Plugin::FormValidator,
> then your do_add method should have some code like this:
> 
> my $profile = { optional => TrackCD::M::CDBI->columns } # see 
> Data::FormValidator docs
> my $results = $c->form($profile);	# validate submitted data
> unless($results->has_missing() || $results->has_invalid()) {
> 	TrackCD::M::CDBI::Record->create_from_form($c->form);
> }
> 
> Marcello

Hmm. There is one problem. I don't have $c->form

Caught exception "Can't locate object method "form" via package 
"TrackCD" at 
/home/eloy/site/trackcd/script/../lib/TrackCD/C/TCD/Record.pm line 124."


   eloy
-- 
-------e-l-o-y-----------e-l-o-y- at -t-r-a-n-s-i-l-v-a-n-i-a-.-e-u-.-o-r-g------

        jak to dobrze, że są oceany - bez nich byłoby jeszcze smutniej



More information about the Catalyst mailing list