use*_*475 5 parameters perl routes mojolicious
我有一个 Mojolicious 控制器,可以响应不同的 URL 路由而触发。例如,给定 URL 路径:
/v1/users/:someid
Run Code Online (Sandbox Code Playgroud)
和一个触发的控制器:
sub handle_request ($self) {
my $place_holder_name = $self->route->?????? # how can I get 'someid'?
is($place_holder_name, 'someid', 'can access the placeholder name');
}
Run Code Online (Sandbox Code Playgroud)
如何找到占位符的名称?
这些目前没有记录在 下Mojolicious::Routes,所以我明白为什么这很令人困惑。它们记录在Mojolicious::Controller#param,
你有一个 Route 参数,所以你可以用以下方法检索该值:
$c->param('someid');
Run Code Online (Sandbox Code Playgroud)
虽然未记录,但您可以在内部哈希引用中找到捕获的名称,如下所示,
$c->param('someid');
Run Code Online (Sandbox Code Playgroud)
像这样;
$self->stash->{'mojo.captures'};
Run Code Online (Sandbox Code Playgroud)