#!/usr/bin/env perl
# This example demonstrates differences between
# param, multi_param, and url_param
# Neaf avoids relying on context in request.
# Instead, different variants of param method exist
# just in case someone wants multi-value params
use strict;
use warnings;
use MVC::Neaf;
my $tpl = <<'TT';
Multi-value checkbox - [% file %]
Non-multi value: [% day_single %]
All values: [% day_multi.join(",") %]
Query value: [% day_url %]
TT
# Prepare some data...
my @days = qw(Mon Tue Wed Thu Fri Sat Sun);
get+post '/10/multi' => sub {
my $req = shift;
# param_multi will return empty lists if some of the given parameters
# fail validation
my @select = $req->multi_param( day => join "|", @days );
my %on;
$on{$_}++ for @select;
return {
self => $req->path,
on => \%on,
days => \@days,
day_multi => \@select,
day_single => $req->param( day => '.*' ),
day_url => $req->url_param( day => '.*' ),
};
}, default => {
-view => 'TT',
-template => \$tpl,
file => 'example/10 NEAF '.MVC::Neaf->VERSION,
}, description => "Multi-value parameters";
neaf->run;