Take me over?
NAME
Catalyst::Plugin::Params::Nested - Nested form parameters (ala Ruby on Rails).
SYNOPSIS
# using this html
<form ...>
<!-- can be
with
either subscripted or dot notation -->
<input name=
"foo[bar]"
... />
<input name=
"foo.gorch"
... />
</form>
# turns params into hashrefs:
$c
->req->param(
'foo'
)->{bar};
$c
->req->params({
# extra params
foo
=> {
bar
=> ...,
gorch
=> ...
},
# original params untouched
'foo[bar]'
=> ...,
'foo.gorch'
=> ...,
});
DESCRIPTION
Ruby on Rails has a nice feature to create nested parameters that help with the organization of data in a form - parameters can be an arbitrarily deep nested structure.
The way this structure is denoted is that when you construct a form the field names have a special syntax which is parsed.
This plugin supports two syntaxes:
When reading query parameters from $c->req
you can now access the all the items starting with "foo" as one entity using $c->req->param('foo');
. Each subitem, denoted by either the dot or the square brackets, will be returned as a further deeper hashref.
INTERNAL METHODS
- prepare_uploads
-
Overrides "prepare_uploads" in Catalyst to expand the parameter data structure post factum.
CAVEATS
No attempt is made to merge data intelligently. If you do this:
<input name=
"foo"
/>
<input name=
"foo.bar"
/>
the foo
parameter will stay untouched, and you'll have to access foo.bar
using its full string name:
$c
->req->param(
"foo.bar"
);
AUTHORS
Yuval Kogman, nothingmuch@woobling.org
Jess Robinson
COPYRIGHT & LICENSE
Copyright (c) 2005 the aforementioned authors. All rights
reserved. This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.