Swoft HTTP Validator 验证器

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 自定义模板提示信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值