我将参数传递给 redirect_to 喜欢
$c->redirect_to('named', foo => 'bar');
或者
$c->redirect_to('named, query => {foo=> 'bar'});
但我不确定如何使用它或在目标控制器中检索 foo 的值。
我将参数传递给 redirect_to 喜欢
$c->redirect_to('named', foo => 'bar');
或者
$c->redirect_to('named, query => {foo=> 'bar'});
但我不确定如何使用它或在目标控制器中检索 foo 的值。
$self->redirect_to('named', foo => 'bar')
,不使用前面的斜杠,指的是命名路由,参数放置在路由占位符中。
默认情况下,您在应用程序中定义的每个路由都会被分配一个路由名称,或者您可以手动分配它们。(您还可以使用 获取已分配路线的列表./myapp routes
)
在精简版应用程序中:
action # 路由名称 得到'/命名' => sub { ... }; # 命名 得到'/named/:foo' => sub { ... }; # 命名为foo get '/named/:foo' => sub { ... } => '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:
bar
您可能还想查看: http: //mojocasts.com/e2#Generic%20Placeholders
非常详细的解释如何通过和获取param
$self 是一个 mojolicious 控制器。在每种情况下,我们调用 $obj->param 来获取名称列表,调用 $obj->param("arg") 来获取值(或值列表):
$self->param -- params from route, post and get
$self->req->param -- params from post and get
$self->req->query_params -- params from get
$self->req->body_params -- params from post