-------- Original-Nachricht -------- > Datum: Thu, 29 Jan 2009 09:17:15 +0000 > Von: Carl Franks <fireart...@gmail.com> > An: "HTML Form Creation, Rendering and Validation Framework" > <html-formfu@lists.scsys.co.uk> > Betreff: Re: [html-formfu] model_stash + model_config with ComboBox element
> Well, my blind guess didn't work, so without some form + dbic config, > I don't have much more to go on. > > I've updated the files > t/default_values/belongs_to_lookup_table_combobox.t > t/default_values/belongs_to_lookup_table_combobox.yml > to ensure a ComboBox works as expected, being populated with > options_from_model(), and then selecting the correct menu option with > default_values(). (svn r1304) Hi, again sorry for the delay. I now have found the time to put together an example which hopefully can help helping me :) The difference between the the Select example of December 2008 (http://lists.scsys.co.uk/pipermail/html-formfu/2008-December/001575.html) and this ComboBox is, that I want the genrename be _copied_ into the bands table rather than being a relationship: It should be possible that a genre 'foo' exists in a band record which does not exist (anymore/yet) in the genres table. So I build the ComboBox myself rather than using "model_config: resultset: Genres". edit.yml (of the bands Controller): ----------------------------------- - type: ComboBox name: genres label: select genre oder enter one bands.pm (Schema): ------------------ package myapp::Schema::Bands; use strict; use warnings; use base 'DBIx::Class'; __PACKAGE__->load_components("Core"); __PACKAGE__->table("Bands"); __PACKAGE__->add_columns( "id", { data_type => "INT", default_value => undef, is_auto_increment => 1, is_nullable => 0, size => 11, }, "name", { data_type => "TEXT", default_value => undef, is_nullable => 1, size => 65535, }, "genre", { data_type => "TEXT", default_value => undef, is_nullable => 1, size => 65535, }, ); __PACKAGE__->set_primary_key("id"); genres.pm (Schema): ------------------- package myapp::Schema::Genres; use strict; use warnings; use base 'DBIx::Class'; __PACKAGE__->load_components("Core"); __PACKAGE__->table("Genres"); __PACKAGE__->add_columns( "id", { data_type => "INT", default_value => undef, is_auto_increment => 1, is_nullable => 0, size => 11, }, "name", { data_type => "TEXT", default_value => undef, is_nullable => 1, size => 65535, }, ); __PACKAGE__->set_primary_key("id"); bands.pm (Controller): ---------------------- sub edit :Local :FormConfig { my ( $self, $c, @args ) = @_; my $bands = $c->model('myapp::Bands')->find($args[0]); my $form = $c->stash->{form}; if ($form->submitted_and_valid) { ... } else { my @allGenres = $c->model('myapp::Genres')->all(); my @genres; foreach (@allGenres) { push(@genres, [$_->name, $_->name]); } my $combo = $form->get_field({ name => 'genres' }); $combo->options(\...@genres); ... $form->model->default_values($bands); $form->process(); } } Jens -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01 _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu