HTML::...CFields(3pm)

πŸ“¦
version 0.29 Β· 3 versions
, in debian trixie, ubuntu resolute, ubuntu stonking

✨ NAME ✨

okay so bestie πŸ’– this page is HTML::...CFields(3pm), and the actual thing it's describing is:

HTML::FormHandler::TraitFor::DBICFields β€” it's a role that grabs your fields straight off a DBIx::Class result source. no manual typing, the source just hands them over. iconic behaviour, honestly 🫢

🌸 VERSION 🌸

version 0.29 β€” she's giving 0.29, so act accordingly.

πŸ’« SYNOPSIS πŸ’«

So this is a role that pulls fields from a DBIx::Class result source, and it requires that a 'source' attribute exists. Non-negotiable, she needs her source. πŸ’…

⚠️ real talk: this feature is new. It does not handle relationships yet, and the interfaces are still subject to change. so like… vibe with it but don't hardwire your whole app to it, fr fr 😭
  my $form = HTML::FormHandler::Model::DBIC->new_with_traits(
      traits => ['HTML::FormHandler::TraitFor::DBICFields'],
      item => $book
  );

and here's the whole loop, verbatim, so you can see exactly what she's doing under the hood ✨

    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;
        }
    }

(some of those lines are commented out in there β€” # and everything β€” so don't come for me, they're supposed to look like that πŸ™ˆ)


🫢 AUTHOR 🫢

FormHandler Contributors β€” see HTML::FormHandler. it's a whole squad, not one person, and we love that for them πŸ‘‘

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. slay, open source queen πŸ’œ


and that's the whole page, bestie! 🌈 this was HTML::...CFields(3pm), generated by perl v5.38.2, dated 2024-03-06. go forth and let your result source do the work for you πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from