PHPackages                             verdient/validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. verdient/validator

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

verdient/validator
==================

A library for validating

0.2.0(5y ago)1181MITPHPPHP &gt;=7.0.0

Since Mar 27Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Verdient/validator)[ Packagist](https://packagist.org/packages/verdient/validator)[ Docs](https://github.com/Verdient/validator)[ RSS](/packages/verdient-validator/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependencies (1)Versions (13)Used By (0)

校验器
===

[](#校验器)

批量校验数据
------

[](#批量校验数据)

```
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;
```

校验器及其参数
=======

[](#校验器及其参数)

  名称 简述 参数 \[默认值\] 释义   required 校验是否为空     string 校验是否为字符串 min \[false\] 最小长度   max \[false\] 最大长度   length \[false\] 长度，当length和min或者max同时设置时，已length的设置为准   charset \[false\] 字符集   tooShort 长度过短时的提示信息   tooLong 长度过长时的提示信息   wrongLength 长度不匹配时的提示信息   wrongCharset 字符集不匹配时的提示信息   mobile 校验是否为合法的手机号码     in 校验是否在给定的范围内 range 范围   strict \[false\] 是否严格匹配   date 校验是否为日期 format \[Y-m-d\] 格式   min \[false\] 最小日期   max \[false\] 最大日期   tooSmall 日期过小提示信息   tooBig 日期过大提示信息   number | integer | int 校验是否为数字 | 整数 min \[false\] 最小   max \[false\] 最大   tooSmall 数字过小提示信息   tooBig 数字过大提示信息   decimal 校验是否小数 min \[false\] 最小   max \[false\] 最大   tooSmall 数字过小提示信息   tooBig 数字过大提示信息   decimal 做多允许的小数点位数   wrongDecimal 当小数点错误时的提示   email 校验是否为电子邮件地址 checkDNS \[false\] 是否检查DNS   ip 校验是否为IP地址 ipv4 \[true\] 是否允许IPv4地址   ipv6 \[true\] 是否允许IPv6地址   subnet \[false\] 子网信息 - false 不允许携带子网 | true 必须包含子网信息 | null 子网信息可选   negation \[false\] 是否允许包含取反标志位   ipv4NotAllowed IPv4不被允许时的提示信息   ipv6NotAllowed IPv6不被允许时的提示信息   noSubnet 不包含子网信息时的提示信息   hasSubnet 包含子网信息时的提示信息   url 校验是否为url地址 schemes \[http, https\] 允许的协议   chineseIDCard 校验是否为中国身份证号码 enable15 \[true\] 是否允许15位身份证号码(第一代身份证)   uuid 校验是否为UUID version \[\*\] 特定的版本，\*代表所有版本   array 校验是否为数组 indexded\[false\] 是否仅索引数组   distinct 是否不允许重复值\[false\]     min 数组中元素数量下限\[false\]     max 数组中元素数量上限\[false\]     noIndexd 数组不为索引数组时的提示     hasDuplicate 数组中存在重复值时的提示     tooSmall 数组过小时的提示     tooBig 数组过大时的提示     bool 校验是否为布尔值     money 校验是否为金额 参数同decimal    snowflake 校验是否为Snowflake ID     pagination 校验是否为页码及分页大小 参数同integer    safe 安全校验器，该校验器不会对数据做任何校验，用于从data()函数直接获取传入的数据   公共参数
====

[](#公共参数)

  名称 简述 参数 \[默认值\] 释义   skipOnEmpty 是否在为空时跳过 bool\[true\]    allowArray 是否允许数组 bool\[true\] 当该值为true时，相当于循环调用校验器（除array校验器）   message 校验错误时的提示信息 {name}校验失败 {name}会被替换为属性名称   isArray 传入数据为数组时的提示信息 {name}不能为数组(对象) 仅在allowArray为false时生效   when 限定条件 array\[null\] 只有符合限定条件是时，校验器才会执行   name 显示的名称 string\[null\] 用于覆盖错误信息中字段的名称 限定条件
----

[](#限定条件)

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

参数的格式为：

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

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

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

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~37 days

Recently: every ~68 days

Total

12

Last Release

1831d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/606eaa4bc61b11fa19f25526a3084758b7086ceb8b11cdbcafd5df11871f2437?d=identicon)[Verdient。](/maintainers/Verdient%E3%80%82)

---

Top Contributors

[![Verdient](https://avatars.githubusercontent.com/u/22468867?v=4)](https://github.com/Verdient "Verdient (13 commits)")

---

Tags

validatorvalidate

### Embed Badge

![Health badge](/badges/verdient-validator/health.svg)

```
[![Health](https://phpackages.com/badges/verdient-validator/health.svg)](https://phpackages.com/packages/verdient-validator)
```

###  Alternatives

[wixel/gump

A fast, extensible &amp; stand-alone PHP input validation class that allows you to validate any data.

1.2k1.3M30](/packages/wixel-gump)[sadegh19b/laravel-persian-validation

A comprehensive Laravel validation package for Persian text, numbers, dates, and Iranian national identifiers

18293.8k1](/packages/sadegh19b-laravel-persian-validation)[awurth/slim-validation

A wrapper around the respect/validation PHP validation library for easier error handling and display

65378.4k9](/packages/awurth-slim-validation)[romeoz/rock-validate

Flexible validator for PHP with I18N.

251.7k6](/packages/romeoz-rock-validate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
