alexpts/simple-validator

简单验证请求数据

1.1.0 2018-03-09 12:20 UTC

This package is auto-updated.

Last update: 2024-09-15 02:43:02 UTC


README

SensioLabsInsight

Build Status Code Coverage Code Climate Scrutinizer Code Quality

用于验证数组集合的简单验证器。

安装

composer require alexpts/simple-validator

示例

$body = (array)$this->request->getParsedBody();

$validator = new Validator;

// shot format
$errors = $validator->validate($body, [
    'parentId' => ['int', 'betweenInt:0:99999'],
    'name' => ['string', 'min:3'],
    'slug' => ['string', 'min:3', 'max:120'],
    'sort' => ['int']
]);

// full format
$errors = $validator->validate($body, [
    'parentId' => ['int', ['betweenInt' => [0, 99999]] ],
    'name' => ['string', ['min' => [3]] ],
    'slug' => ['string', ['min' => [3]], ['max' => [120]] ],
    'sort' => ['int']
]);

// validate if exists
$errors = $validator->validateIfExists($body, [
    'name' => ['string', ['min' => [3]] ],
    'sort' => ['int'] // field not passed, not validate
]);

// deep attributes
$errors = $validator->validate($body, [
    'user' => ['array', 'min:3'],
    'user.name' => ['string', 'min:3'],
    'user.age' => ['int'],
]);

$errors = $validator->validateIfExists($body, [
    'user' => ['array', 'min:3'],
    'user.name' => ['string', 'min:3'],
    'user.age' => ['int'],
]);

验证器

string

正在验证的字段必须是字符串

int

正在验证的字段必须是整数

float

正在验证的字段必须是浮点数

array

正在验证的字段必须是数组

required

必填字段

betweenInt:min:max

范围 [min, max] 内的整数

betweenFloat:min:max

范围 [min, max] 内的浮点数

bool

正在验证的字段必须是布尔值

alpha

正在验证的字段必须是全部字母字符

alphaDash

正在验证的字段可以包含字母数字字符、连字符和下划线

alphaNum

正在验证的字段必须是全部字母数字字符

date

根据 PHP 函数 strtotime,验证的字段必须是有效的日期

dateTime

值必须是 \DateTime 对象的实例

inArray

检查值是否在数组中

min

字符串的最小长度、数字的最小值、数组的最小计数

max

字符串的最大长度、数字的最大值、数组的最大计数

email

正在验证的字段必须是简单的电子邮件字符串

自定义验证器

您可以通过方法添加自定义验证器

public function registerRule(string $name, callable $handler): self