HTTP请求参数验证可使用参数验证器Validator
实现,参数验证器可为PATH
路径参数、GET
请求参数、POST
请求参数提供验证,并且都已经通过注解实现。目前,已经实现的常见数据类型的参数验证,具体包括:整数、正整数、浮点数、字符串、枚举...
例如,在控制器的动作方法中使用注解的方式对参数进行验证
/**
* @RequestMapping("string/{name}")
*
* @Strings(from=ValidatorFrom::GET, name="name", min=3, max=10, default="boy")
* @Strings(from=ValidatorFrom::POST, name="name", min=3, max=10, default="girl")
* @Strings(from=ValidatorFrom::PATH, name="name", min=3, max=10)
*
* @param string $name
* @param Request $request
*
* @return array
*/
public function string(Request $request, string $name)
{
$getName = $request->query('name');
$postName = $request->post('name');
return [$getName, $postName, $name];
}
使用方式如下
@Strings(from=ValidatorFrom::GET, name="name", min=3, max=10, default="boy")
@Strings(from=ValidatorFrom::POST, name="name", min=3, max=10, default="girl")
@Strings(from=ValidatorFrom::PATH, name="name", min=3, max=10)
@Strings 字符串类型验证器
源码参见:vendor\swoft\framework\src\Bean\Annotation\Strings.php
命名空间:use Swoft\Bean\Annotation\Strings;
@Strings(
from=ValidatorFrom::GET,
name="name",
min=3,
max=10,
default="boy",
template="字段{name}必须在{min}到{max}之间,您提交的值是{value}"
)
参数解析:
-
from
定义验证的请求类型,默认为ValidatorFrom::POST
。 -
name
定义验证的参数名称 -
min
定义字符串的最小长度 -
max
定义字符串的最大长度 -
default
定义字符串的默认值,from=ValidatorFrom::PATH
时禁用此参数。 -
template
自定义模板提示信息
@Number 正整数验证器
源码参见:vendor\swoft\framework\src\Bean\Annotation\Number.php
命名空间:use Swoft\Bean\Annotation\Number;
@Number(
from=ValidatorFrom::GET,
name="id",
min=5,
max=10,
default=7,
template="字段{name}必须在{min}到{max}之间,您提交的值是{value}"
)
参数解析:
-
from
定义验证请求类型,默认为ValidatorFrom::POST
。 -
name
定义验证的参数名称 -
min
定义参数的最小值 -
max
定义参数的最大值 -
default
定义参数的默认值,from=ValidatorFrom::PATH
时禁用此参数。 -
template
自定义模板提示信息
@Integer 整数验证器
源码参见:vendor\swoft\framework\src\Bean\Annotation\Integer .php
命名空间:use Swoft\Bean\Annotation\Integer ;
@Integer(
from=ValidatorFrom::PATH,
name="id",
min=5,
max=10,
template="字段{name}必须在{min}到{max}之间,您提交的值是{value}"
)
参数解析:
-
from
定义验证的请求类型,默认为ValidatorFrom::POST
。 -
name
定义验证的参数名称 -
min
定义参数的最小值 -
max
定义参数的最大值 -
default
定义参数的默认值,from=ValidatorFrom::PATH
时禁用此参数。 -
template
自定义模板提示信息
@Floats 浮点数验证器
源码参见:vendor\swoft\framework\src\Bean\Annotation\Floats.php
命名空间:use Swoft\Bean\Annotation\Floats;
@Floats(
from=ValidatorFrom::POST,
name="id",
min=5.1,
max=5.9,
default=5.6,
template="字段{name}必须在{min}到{max}之间,您提交的值是{value}"
)
参数解析:
-
from
定义验证的请求类型,默认为ValidatorFrom::POST
。 -
name
定义验证的参数名称 -
min
定义参数的最小值 -
max
定义参数的最大值 -
default
定义参数的默认值,from=ValidatorFrom::PATH
时禁用此参数。 -
template
自定义模板提示信息
@Enum枚举验证器
源码参见:vendor\swoft\framework\src\Bean\Annotation\Enum.php
命名空间:use Swoft\Bean\Annotation\Enum;
@Enum(
from=ValidatorFrom::POST,
name="name",
values={1,"a",3},
default=1,
template="字段{name}必须的,您提交的值是{value}"
)
参数解析:
-
from
定义验证的请求类型,默认为ValidatorFrom::POST
。 -
values
定义默认枚举数组,格式为{1,"a",3}
。 -
default
定义参数的默认值,from=ValidatorFrom::PATH
时禁用此参数。 -
template
自定义模板提示信息