smi*_*ith 2 perl mojolicious mojolicious-lite
我有以下代码:
get '/:foo' => sub {
my $c = shift;
my $v = $c->validation;
my $foo = $c->param('y');
$c->render(text => "Hello from $foo.") if $v->required('y')->like(q/[A-Z]/);
};
Run Code Online (Sandbox Code Playgroud)
并且想要验证http请求的y paremter我连接到上面的网页使用:http:// myserver:3000?x = 2&y = 1
它打印=>你好1.即使有$ v-> required('y') - >喜欢(q/[AZ] /);
这可能是我的问题?
Mojolicious验证使用流畅的接口,因此大多数方法返回验证对象.默认情况下,对象是真实的,因此您的条件始终为真.
相反,你可以检查
->is_valid() - 当前主题的验证是否成功,或->has_error() - 是否有任何验证错误.您可以通过调用->required('name')或->optional('name')在验证对象上引入新的验证主题.所以你可以写:
$c->render(text => "Hello from $foo.")
if $v->required('y')->like(q/[A-Z]/)->is_valid;
Run Code Online (Sandbox Code Playgroud)
要么
$v->required('y')->like(q/[A-Z]/);
$c->render(text => "Hello from $foo.") unless $v->has_error;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |