Gene\Validate 封装了数据校验的基本方法,支持自定义校验函数。
//http验证类注入配置
$config->set("validate", [
'class' => '\Gene\Validate'
]);
初始化待校验数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$name | array | 是 | 待校验数据。 |
返回值: mixed。
$this->validate->init($_POST);
设置规则字段名。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$name | String | 是 | 字段名。 |
返回值: mixed。
$this->validate->name("id");
字段数据为空时跳过校验。
返回值: mixed。
$this->validate->name("id")->skipOnEmpty();
设置字段的值过滤。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$method | String | 是 | 方法名。 |
$args | array | 否 | 参数。 |
返回值: mixed。
$this->validate->name("id")->filter("intval");
增加自定义校验函数,支持类方法、闭包回调函数等。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$name | String | 是 | 自定义函数的回调名。 |
$function | mixed | 是 | 自定义函数:类方法或者闭包函数。 |
$msg | String | 是 | 错误提示信息。 |
返回值: mixed。
$this->validate->addValidator("repass", function($value){return true;}, "repass error");
设置当前字段校验错误提示信息。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$msg | String | 是 | 错误提示信息。 |
返回值: mixed。
$this->validate->name("id")->required()->msg("id是必须填写字段");
校验,遇到校验失败中断后面的校验返回false,全部校验通过返回true。
返回值: boolean。
if (!$this->validate->name("id")->required()->msg("id是必须填写字段")->valid()) {
var_dump($this->validate->error());
}
全部校验遇到数据校验失败不中断,记录失败信息,校验通过数据。
无。
返回值: mixed。
if (!$this->validate->name("id")->required()->msg("id是必须填写字段")->groupValid()) {
var_dump($this->validate->getError());
var_dump($this->validate->getValue());
}
获取校验失败信息。
无。
返回值: string。
$this->validate->error();
取校验通过数据,不传参,返回全部数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$name | array | 否 | 字段名。 |
返回值: mixed。
$this->validate->getValue()
取校验错误信息,不传参,返回全部错误。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
$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 | 空 | 数据必须是网址。 |
空 | 数据必须是邮箱地址。 | |
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());
}