Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sshaw/mojolicious-plugin-paramexpand
Turns request parameters into nested data structures using CGI::Expand.
https://github.com/sshaw/mojolicious-plugin-paramexpand
mojolicious parameters perl www
Last synced: about 1 month ago
JSON representation
Turns request parameters into nested data structures using CGI::Expand.
- Host: GitHub
- URL: https://github.com/sshaw/mojolicious-plugin-paramexpand
- Owner: sshaw
- Created: 2012-03-09T11:33:56.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2016-02-04T22:55:46.000Z (almost 9 years ago)
- Last Synced: 2024-12-17T00:47:03.303Z (about 1 month ago)
- Topics: mojolicious, parameters, perl, www
- Language: Perl
- Homepage:
- Size: 23.4 KB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.pod
- Changelog: Changes
Awesome Lists containing this project
README
=pod
=head1 NAME
Mojolicious::Plugin::ParamExpand - Use objects and data structures in your forms
=head1 SYNOPSIS
# Mojolicious
$self->plugin('ParamExpand', %options);# Mojolicious::Lite
plugin 'ParamExpand', %options;# In your action
sub action
{
my $self = shift;
my $order = $self->param('order');
$order->{address};
$order->{items}->[0]->{id};
$order->{items}->[0]->{price};
# ...
}=head1 DESCRIPTION
L turns request parameters into nested data
structures using L.=head1 MOJOLICIOUS VERSION
=head2 Less than 2.52
Due to the old way C handled multi-valued request parameters
versions prior to 2.52 will not work with this plugin. If this is a problem for
you try L.=head2 Greater than 5.57
L no longer returns an array.
You must call L.=head1 OPTIONS
Options must be specified when loading the plugin.
=head2 separator
$self->plugin('ParamExpand', separator => ',')
The character used to separate the data structure's hierarchy in the
flattened parameter. Defaults to C<'.'>.=head2 max_array
$self->plugin('ParamExpand', max_array => 10)
Maximum number of array elements C will create.
Defaults to C<100>. If a parameter contains more than C
elements an exception will be raised.To force the array into a hash keyed by its indexes set this to C<0>.
=head1 Methods
=head2 param
This is just L but, when using C, a
request with the parametersusers.0.name=nameA&users.1.name=nameB&id=123
will return a nested data structure for the param C<'users'>
@users = $self->param('users');
$users[0]->{name};
$users[1]->{name};Other parameters can be accessed as usual
$id = $self->param('id');
The flattened parameter name can also be used
$name0 = $self->param('users.0.name');
=head3 Arguments
C<$name>
The name of the parameter.
=head3 Returns
The value for the given parameter. If applicable it will be an expanded
data structure.Top level arrays will be returned as arrays B as array references.
This is how C behaves. In other wordsusers.0=userA&users.1=userB
is equivlent to
users=userA&users=userB
If this is undesirable you could L<< set C to zero|/max_array >>.
=head1 SEE ALSO
L, L, L
=head1 COPYRIGHT
Copyright (c) 2012-2016 Skye Shaw.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.