package MyApp::Form::Book; use utf8; use HTML::FormHandler::Moose; extends 'HTML::FormHandler::Model::DBIC'; use namespace::autoclean; has '+item_class' => ( default => 'Book' ); has_field 'title' => ( type => 'Text', required => 1, label => 'Title', ); has_field 'comment' => ( type => 'Text', required => 1, ); __PACKAGE__->meta->make_immutable; 1; #### sub edit_book : Local : Args(1) { my ( $self, $c, $id ) = @_; my $book = $c->model('DB::Book')->find($id); return $self->form($c, $book); } sub form : Private { my ( $self, $c, $book ) = @_; my $form = MyApp::Form::Book->new; $c->stash( template => 'admin/edit_book.tt', title => 'Edit Book', form => $form, ); $form->process->( item => $book, params => $c->req->params ); return unless $form->validated; }