| HTML-FormFu documentation | view source | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Model::HashRef - handle hashrefs
---
elements:
- user_id
- user_name
- type: Repeatable
nested_name: addresses
elements:
- type: Hidden
name: id
- street
$form->model('HashRef')->default_values( {
user_id => 123,
user_name => 'Hans',
addresses => [
{ id => 2,
street => 'Somewhere' },
{ id => 3,
street => 'Somewhere Else' }
]
} );
$form->default_model('HashRef');
my $hashref = $form->model->create();
# $hashref is very much the same as the hashref you passed to default_values()
If you need the content of a formular as hashref or for processing with other modules
like JSON you can use this model.
This method creates a hashref from a filled form. This form can be filled by calling default_values in HTML::FormFu, default_values of any other model class (e. g. HTML::FormFu::Model::DBIC) or by simply submitting the form.
If deflators is true all deflators are processed (defaults to 1).
If options is true the value of all elements which have options like HTML::FormFu::Element::Select will be transformed.
---
elements:
- type: Select
name: select
options:
- [1, "Foo"]
- [2, "Bar"]
If the value of select is 1, create will create this hashref:
{ 'select' => { label => 'Foo', value => 1 } }
If there is more than one value selected, an arrayref is created instead:
{ 'select' => [ { label => 'Foo', value => 1 },
{ label => 'Bar', value => 2 } ] }
If options is false, the output will look like this:
{ 'select' => 1 }
respectively
{ 'select' => [1, 2] }
options is false by default.
To get a flattened hash, you can set /flatten to a true value (defaults to 0).
This will generate a hash which uses the nested name of each field as key and the value
of this field as hash value. If there is a field which has more than one value,
a counter is added. The above example would result in a hash like this using /flatten:
{ 'select_0' => 1,
'select_1' => 2 }
Alias for create.
Populate a form using a hashref. This hashref has the same format as the output of create.
If inflators is true, all inflators will be processed (defaults to 1).
These methods do not return the model object so chaining is not possible!
Adds the label of a value to the hashref if the element has options in HTML::FormFu::Element::_Group.
See create for an example. Defaults to 0.
Flattens the hash using Hash::Flatten. See create for an example. Defaults to 0.
If true, processes deflators in /create. Defaults to 1.
If true, processes inflators in /default_values. Defaults to 1.
Moritz Onken, onken@houseofdesign.de
| HTML-FormFu documentation | view source | Contained in the HTML-FormFu distribution. |