Mojolicious 参数验证
Mojolicious Parameter Validation
我有以下代码:
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]/);
};
并想验证我连接到上述网页的 http 请求上的 y 参数:http://myserver:3000?x=2&y=1
它打印 => Hello from 1。
即使有 $v->required('y')->like(q/[A-Z]/);
我的问题是什么?
Mojolicious 验证使用 a fluent interface,因此大多数方法 return 验证对象。默认情况下对象是真实的,所以你的条件总是真实的。
相反,您可以查看
->is_valid()
– 当前主题的验证是否成功,或者
->has_error()
– 是否有任何验证错误。
您通过对验证对象调用 ->required('name')
或 ->optional('name')
来引入新的验证主题。所以你可以写:
$c->render(text => "Hello from $foo.")
if $v->required('y')->like(q/[A-Z]/)->is_valid;
或
$v->required('y')->like(q/[A-Z]/);
$c->render(text => "Hello from $foo.") unless $v->has_error;
我有以下代码:
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]/);
};
并想验证我连接到上述网页的 http 请求上的 y 参数:http://myserver:3000?x=2&y=1
它打印 => Hello from 1。 即使有 $v->required('y')->like(q/[A-Z]/);
我的问题是什么?
Mojolicious 验证使用 a fluent interface,因此大多数方法 return 验证对象。默认情况下对象是真实的,所以你的条件总是真实的。
相反,您可以查看
->is_valid()
– 当前主题的验证是否成功,或者->has_error()
– 是否有任何验证错误。
您通过对验证对象调用 ->required('name')
或 ->optional('name')
来引入新的验证主题。所以你可以写:
$c->render(text => "Hello from $foo.")
if $v->required('y')->like(q/[A-Z]/)->is_valid;
或
$v->required('y')->like(q/[A-Z]/);
$c->render(text => "Hello from $foo.") unless $v->has_error;