验证类 GeneValidate

验证类 Gene\Validate

  • 介绍

    Gene\Validate 封装了数据校验的基本方法,支持自定义校验函数。

    注入配置实例: ###

    
      //http验证类注入配置
      $config->set("validate", [
          'class' => '\Gene\Validate'
      ]);
  • init

    初始化待校验数据。

    参数:

    参数 类型 是否必填 注释
    $name array 待校验数据。

    返回值: mixed。

    实例:

    
      $this->validate->init($_POST);  
  • name

    设置规则字段名。

    参数:

    参数 类型 是否必填 注释
    $name String 字段名。

    返回值: mixed。

    实例:

    
      $this->validate->name("id");  
  • skipOnEmpty

    字段数据为空时跳过校验。

    返回值: mixed。

    实例:

    
      $this->validate->name("id")->skipOnEmpty();  
  • filter

    设置字段的值过滤。

    参数:

    参数 类型 是否必填 注释
    $method String 方法名。
    $args array 参数。

    返回值: mixed。

    实例:

    
      $this->validate->name("id")->filter("intval"); 
  • addvalidator

    增加自定义校验函数,支持类方法、闭包回调函数等。

    参数:

    参数 类型 是否必填 注释
    $name String 自定义函数的回调名。
    $function mixed 自定义函数:类方法或者闭包函数。
    $msg String 错误提示信息。

    返回值: mixed。

    实例:

    
      $this->validate->addValidator("repass", function($value){return true;}, "repass error");
  • msg

    设置当前字段校验错误提示信息。

    参数:

    参数 类型 是否必填 注释
    $msg String 错误提示信息。

    返回值: mixed。

    实例:

    
      $this->validate->name("id")->required()->msg("id是必须填写字段"); 
  • valid

    校验,遇到校验失败中断后面的校验返回false,全部校验通过返回true。

    返回值: boolean。

    实例:

    
      if (!$this->validate->name("id")->required()->msg("id是必须填写字段")->valid()) {
          var_dump($this->validate->error());
      }
  • groupValid

    全部校验遇到数据校验失败不中断,记录失败信息,校验通过数据。

    参数:

    无。

    返回值: mixed。

    实例:

    
      if (!$this->validate->name("id")->required()->msg("id是必须填写字段")->groupValid()) {
          var_dump($this->validate->getError());
          var_dump($this->validate->getValue());
      }
  • error

    获取校验失败信息。

    参数:

    无。

    返回值: string。

    实例:

    
      $this->validate->error();
  • getValue

    取校验通过数据,不传参,返回全部数据。

    参数:

    参数 类型 是否必填 注释
    $name array 字段名。

    返回值: mixed。

    实例:

    
      $this->validate->getValue()
  • getError

    取校验错误信息,不传参,返回全部错误。

    参数:

    参数 类型 是否必填 注释
    $name array 字段名。

    返回值: mixed。

    实例:

    
      $this->validate->getError()
  • 验证规则

    内置验证规则。

    规则表

    名字 参数 注释
    required 数据不能为空。
    match $regex 数据必须匹配$regex(正则表达式)。
    max $max 数据必须小于等于$max。
    min $min 数据必须大于等于$min。
    range $min、$max 数据必须大于等于$min、小于等于$max。
    length $min、$max 数据必须是字符串,长度大于等于$min、小于等于$max。
    size $min、$max 数据必须是数组,梳理大于等于$min、小于等于$max。
    in $list 数据$list(数组)的成员值。
    url 数据必须是网址。
    email 数据必须是邮箱地址。
    ip 数据必须是ip。
    mobile 数据必须是手机号码。
    data 数据必须是时间(格式:2019-12-12)。
    datetime $format 数据必须是指定格式$format("Y-m-d H:i:s")的时间。
    number 数据必须是数字。
    int 数据必须是正式。
    digit 数据必须是数字,支持纯字符串数字。
    string 数据必须是字符串。
    equal $name 数据必须是与指定字段数据($name)相等。
    equals $value 数据必须是与给定数据值($value)相等。

    返回值: mixed。

    综合实例:

    
      $this->validate->init(['abc'=>"1211", 'ddd'=>"1211baz", "ccc"=>"127.0.0.1"]);
      $this->validate->addValidator("repass", function($value){return true;}, "repass error");
      if(!$this->validate->name("abc,ddd,ccc")->msg("field msg")->required()->msg("method msg")->name("ddd")->match('/(baz)/')->repass()->skipOnEmpty()->name("ccc")->ip()->groupValid()) {
         var_dump($abc->getError());
         var_dump($abc->getValue());
      }