我正在将参数传递给redirect_to之类的
$c->redirect_to('named',foo => 'bar');
要么
$c->redirect_to('named,query => {foo=> 'bar'});
但我不知道如何使用它或检索目标控制器中的foo值.
解决方法
$self-> redirect_to(‘named’,foo =>’bar’),在没有前面的斜杠的情况下使用,引用命名路由,参数放在路径占位符中.
默认情况下,您在应用程序中定义的每个路由都会分配一个路由名称,或者您可以手动分配它们. (您还可以使用./myapp路由获取已分配路由的列表)
在精简版应用中:
action # route name get '/named' => sub { ... }; # named get '/named/:foo' => sub { ... }; # namedfoo get '/named/:foo' => sub { ... } => 'something-else'; # something-else
以下重定向到get’/ named /:foo’操作:
$self->redirect_to('namedfoo',foo => 'bar')
这实际上与以下内容相同:
$self->redirect_to('/named/bar');
您可以使用 – > param访问操作中的占位符值:
get '/named/:foo' => sub { my $self = shift; $self->render_text($self->param('foo')); };
其中呈现以下HTML:
酒吧