EasySwoole的数据校验类放在Core/Utility/Validate下。你可以通过创建Validate类添加字段和规则来实现数据校验。可以给每个字段设置缺省错误提示,也可以给每个字段的每条规则设置错误提示,如果某条规则没有错误提示,则返回字段的缺省默认提示。

具体示例代码

  • 基本使用
$validate = new Validate();
$validate->addColumn('column1')->withErrorMsg('字段1错误')
        ->addRule(Rule::INTEGER, [], '字段1必须为整数');
$validate->addColumn('column2')
        ->addRule(Rule::MAX_LEN, [5], '字段2不能超过五个字符');
$ret = $this->request()->requestParamsValidate($validate);
if($ret->hasError()){
    $this->response()->writeJson(Status::CODE_BAD_REQUEST,null,$ret->all());
    return;
}

如上图代码所示,你只需要new Validate()

新建一个数据校验类,然后给他添加字段$validate->addColumn('column1')->withErrorMsg('字段1错误'),你可以根据自己需求决定要不要缺省的错误提示withErrorMsg('字段1错误'),然后链式调用addRule(Rule::INTEGER, [], '字段1必须为整数')来字段添加规则。addRule(Rule::MAX_LEN, [5], '字段2不能超过五个字符')第一个参数传Rule类的静态变量,就是校验的规则,第二个参数是校验所需的参数(数组的形式),第三个参数就是校验失败的提示信息。


  • 多级参数
$validate->addColumn('company')
        ->addRule(Rule::REQUIRED, [], '公司是必传参数');
$validate->addColumn('company.name')
        ->addRule(Rule::REQUIRED, [], '公司名称是必传参数');
$validate->addColumn('company.name.realName')
        ->addRule(Rule::REQUIRED, [], '公司全称是必传参数');

如上图代码所示,你只需要用.来为company字段设置二级参数name和三级参数realName


  • .参数为数组,数组下实体的参数校验
$validate->addColumn('student.*.name')
        ->addRule(Rule::MAX_LEN, [5], '名字最大长度为5');

如上所示,传过来的student参数是个数组,数组下有很多学生实体,实体下的属性name需要验证,可以参照以上的形式去校验。


注意

在使用的过程中,你可能会发现你给某个字段增加Rule,但是并未设置成必要参数required,当你不传这个参数的时候,验证会拦截不通过。类似:

$validate->addColumn('classNo')
        ->addRule(Rule::INTEGER, [], '班级号必须是整数')

你只需要把这个参数设置成可选参数即可通过验证

$validate->addColumn('classNo')
        ->addRule(Rule::INTEGER, [], '班级号必须是整数')
        ->addRule(Rule::OPTIONAL, [], '班级号是可选参数');

results matching ""

    No results matching ""