HTML::FormHandler::TraitFor::DBICFields(3pm) | User Contributed Perl Documentation | HTML::FormHandler::TraitFor::DBICFields(3pm) |
HTML::FormHandler::TraitFor::DBICFields - role to get fields from DBIx::Class result source
version 0.29
This is a role to pull fields from a DBIx::Class result source. Requires existence of a 'source' attribute.
This feature is new. It doesn't handle relationships yet, and the interfaces are still subject to change.
my $form = HTML::FormHandler::Model::DBIC->new_with_traits( traits => ['HTML::FormHandler::TraitFor::DBICFields'], item => $book ); for my $rel( $source->relationships ) { next if grep { $_ eq $rel } @exclude; next if grep { $_->[1] eq $rel } $self->m2m_for_class($class); my $info = $source->relationship_info($rel); push @exclude, get_self_cols( $info->{cond} ); my $rel_class = _strip_class( $info->{class} ); my $elem_conf; if ( ! ( $info->{attrs}{accessor} eq 'multi' ) ) { push @fields, "has_field '$rel' => ( type => 'Select', );" } elsif( $level < 1 ) { my @new_exclude = get_foreign_cols ( $info->{cond} ); my $config = $self->get_fields ( $rel_class, 1, ); my $target_class = $rel_class; $target_class = $self->class_prefix . '::' . $rel_class if $self->class_prefix; $config->{class} = $target_class; $config->{name} = $rel; # $self->set_field_class_data( $target_class => $config ) if !$self->exists_field_class( $target_class ); my $field_def = ''; # if( defined $self->style && $self->style eq 'single' ){ # $field_def .= '# '; # } $field_def .= "has_field '$rel' => ( type => '+${target_class}Field', );"; push @fields, $field_def; } }
FormHandler Contributors - see HTML::FormHandler
This software is copyright (c) 2013 by Gerda Shank.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
2014-08-14 | perl v5.20.0 |