perl - 在 mojolicious 中将参数传递给 redirect_to 并在目标 Controller 中使用它们

标签 perl mojolicious

我将参数传递给 redirect_to 喜欢

$c->redirect_to('named', foo => 'bar');

或者
$c->redirect_to('named, query => {foo=> 'bar'});

但我不确定如何使用它或在目标 Controller 中检索 foo 的值。

最佳答案

$self->redirect_to('named', foo => 'bar') ,不使用前面的斜杠,指的是命名路由,参数放置在路由占位符中。

默认情况下,您在应用程序中定义的每个路由都会被分配一个路由名称,或者您可以手动分配它们。 (您还可以使用 ./myapp routes 获取已分配路线的列表)

在精简版应用程序中:

action # route name

get '/named' => sub { ... }; # named
get '/named/:foo' => sub { ... }; # namedfoo
get '/named/:foo' => sub { ... } => 'something-else'; # something-else

The following redirects to the get '/named/:foo' action:

$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

关于perl - 在 mojolicious 中将参数传递给 redirect_to 并在目标 Controller 中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622247/

相关文章:

perl - 无法在 Mojo::UserAgent 请求中发布 json

perl - 为 Mojolicious 测试提供描述性测试名称?

perl - 关于与 Mojolicious 或 HTML::Entities 一起使用的 Umlaut 的 Git::Repository 问题

perl - 使用 Test::More 在 perl 中进行单元和集成测试 - 如何捕获退出调用?

python - 是否需要 “use strict” Python编译器?

regex - 使用正则表达式创建子集

perl - Mojo::CookieJar - 如何从文件加载 cookie

perl - 在进程之间共享一个复杂的对象

perl - Perl 中的取消引用哈希在 Docker 容器中不起作用

regex - 无法获取多行正则表达式来匹配字符串