> On 24 September 2012 11:22, <sc...@simpzoid.com> wrote: >> Dear All, >> >> I have been the following 2 methods in a controller: >> >> sub create :Chained('base') :PathPart('create') >> :FormConfig('author/edit.conf') { >> my ( $self, $c ) = @_; >> >> my $form = $c->stash->{form}; >> $form->stash( schema => $c->stash->{schema} ); >> >> if ( $form->submitted_and_valid ) { >> >> my $author = >> $form->stash->{schema}->resultset('Author')->new_result({}); >> $form->model->update($author); >> $c->response->redirect( $c->uri_for( >> $self->action_for('list')) ); >> } >> $c->stash(template => 'author/formfu_create.tt2'); >> } >> >> sub edit :Chained('object') :PathPart('edit') :Args(0) >> :FormConfig('author/edit.conf') { >> my ( $self, $c, $id ) = @_; >> >> my $form = $c->stash->{form}; >> >> if ( $form->submitted_and_valid ) { >> $form->model->update($c->stash->{rs}); >> $c->response->redirect( $c->uri_for( >> $self->action_for('list')) ); >> } else { >> $form->model->default_values($c->stash->{rs}); >> } >> $c->stash(template => 'author/formfu_create.tt2'); >> } >> >> The methods give the following results: >> >> Edit gives >> SELECT me.id, me.name FROM author me WHERE ( me.id = ? ): '1' >> UPDATE author SET name = ? WHERE ( id = ? ): 'scott', '1' >> SELECT me.id, me.address, me.author_id FROM address me WHERE ( ( me.id = >> ? >> AND me.author_id = ? ) ): '1', '1' >> UPDATE address SET address = ? WHERE ( id = ? ): '13 thriplee road', '1' >> >> Create Gives >> INSERT INTO author ( name) VALUES ( ? ): 'Marge' >> >> ...and finally the question. Why does the create method not do an >> insert >> into the address table and what do I have have to do to persuade the >> create method to do said insert? > > I haven't checked the Model::DBIC code, but I suspect it's because the > author row doesn't exist at the time it would be creating the related > rows. > > Try adding > $author->insert; > before your > $form->model->update($author); > > Carl > > _______________________________________________ > HTML-FormFu mailing list > HTML-FormFu@lists.scsys.co.uk > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu > This time create gives:
INSERT INTO author () VALUES (): UPDATE author SET name = ? WHERE ( id = ? ): 'simp', '15' Still nothing for the address table _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu