__PACKAGE__->config(namespace => 'Hello')
现在考虑我在催化剂控制器Hello.pm
中有上述陈述
这将与网址中的http://localhost:3000/Hello
匹配
但我也希望匹配http://localhost:3000/hello
。
我尝试实现此目的的一种方式如下
sub match_hello : Path('/hello')
{
my ( $self, $c ) = @_;
$c->response->body("lowercase hello also matched");
}
但是,我们也可以使用__PACKAGE__->config(namespace => ... )
语句实现相同的目标吗?
答案 0 :(得分:0)
无需弄乱名称空间。阅读Action types in Catalyst::Manual::Intro
。
向根控制器添加LocalRegex
操作。
sub match_hello :LocalRegex('(?i)^hello$') {
my ($self, $c) = @_;
$c->response->body('case-insensitive hello matches');
}
调试输出:
[debug] Loaded Regex actions:
.-------------------------------------+--------------------------------------.
| Regex | Private |
+-------------------------------------+--------------------------------------+
| ^(?:.*?)(?i)^hello$ | /match_hello |
'-------------------------------------+--------------------------------------'
请求:
$ GET http://localhost:5000/HeLlO
case-insensitive hello matches