logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HTML::FormHandler::Field::Compound - field consisting of subfields

Author

       FormHandler Contributors - see HTML::FormHandler

Name

       HTML::FormHandler::Field::Compound - field consisting of subfields

Synopsis

       This field class is designed as the base (parent) class for fields with multiple subfields. Examples are
       HTML::FormHandler::Field::DateTime and HTML::FormHandler::Field::Duration.

       A compound parent class requires the use of sub-fields prepended with the parent class name plus a dot

          has_field 'birthdate' => ( type => 'DateTime' );
          has_field 'birthdate.year' => ( type => 'Year' );
          has_field 'birthdate.month' => ( type => 'Month' );
          has_field 'birthdate.day' => ( type => 'MonthDay');

       If all validation is performed in the parent class so that no validation is necessary in the child
       classes, then the field class 'Nested' may be used.

       The array of subfields is available in the 'fields' array in the compound field:

          $form->field('birthdate')->fields

       Error messages will be available in the field on which the error occurred. You can access 'error_fields'
       on the form or on Compound fields (and subclasses, like Repeatable).

       The process method of this field runs the process methods on the child fields and then builds a hash of
       these fields values.  This hash is available for further processing by "actions" in
       HTML::FormHandler::Field and the validate method.

   widget
       Widget type is 'compound'

   build_update_subfields
       You can set 'defaults' or other settings in a 'build_update_subfields' method, which contains attribute
       settings that will be merged with field definitions when the fields are built. Use the 'by_flag' key with
       'repeatable', 'compound', and 'contains' subkeys, or use the 'all' key for settings which apply to all
       subfields in the compound field.

Version

       version 0.40068

See Also