verdient/validator

A library for validating

0.2.0 2021-05-12 02:18 UTC

This package is not auto-updated.

Last update: 2024-11-06 19:19:14 UTC


README

批量校验数据

use Verdient\Validator\Validation;

/**
 * 限定条件,格式为数组
 * 第一级的Key为字段的名称,value为索引数组,数组内的每一个数组代表一个校验规则
 * 校验规则格式为:第一个元素为校验器的名字,其后的参数为注入到校验器内的参数
 */
$constraints = [
		'mobile' => [
			['mobile'], //规则1,要求必须是手机号码
			['string'], //规则2,要求必须是字符串
		],
		'date' => [
			['date', 'min' => '2020-02-02', 'max' => '2020-02-02'] //校验是否为日期,且最大最小日期均为2020-02-02
		],
		'in' => [
			['in', 'range' => [1, 2, 3]] //校验是否为1, 2, 3中的一个(或多个)
		], ...
];

/**
 * 要校验的数据
 */
$data = [
	'mobile' => '15757116316',
	'date' => '2020-02-02',
	'in' => 1, ...
];

$result = $validation->validate($data); //返回结果为true或false

校验单个数据

use Verdient\Validator\Validators\In;

$validator = new In(['range' => [1, 2, 3]]);
$result = $validator->validate(4);

获取错误信息

$errors = $validation->getErrors();

获取第一个错误

$firstError = $errors->first(); //返回的结果为数组,key为字段名称,value为提示信息

直接取得错误提示信息

$message = (string) $errors;

校验器及其参数

公共参数

限定条件

可以在声明限定条件时指定when参数来限定校验器的执行,只有当限定条件满足时,校验器才会真正的被执行,否则将会跳过校验器的检查。

参数的格式为:

$when = ['{name}', '{operator}', '{comparedValue}'];

name代指属性名称,operator为操作符,comparedValue为被比较的值

其中name和value必填,comparedValue默认为空