4
4
5
5
> 规则设置参考自 yii 的。
6
6
7
+ ## 项目地址
8
+
9
+ - ** git@osc** https://git.oschina.net/inhere/php-validate.git
10
+ - ** github** https://github.com/inhere/php-validate.git
11
+
7
12
## 安装
8
13
9
14
- 使用 composer
@@ -43,17 +48,15 @@ git clone https://github.com/inhere/php-validate.git // github
43
48
return [
44
49
['tagId,title,userId,freeTime', 'required', 'msg' => '{attr} is required!'],
45
50
['tagId', 'size', 'min'=>4, 'max'=>567], // 4<= tagId <=567
46
- ['title', 'min', 'min' => 40],
51
+ ['title', 'min', 40],
47
52
['freeTime', 'number'],
48
53
['tagId', 'number', 'when' => function($data) {
49
54
return isset($data['status']) && $data['status'] > 2;
50
55
}],
51
56
['userId', 'number', 'on' => 'scene1' ],
52
57
['username', 'string', 'on' => 'scene2' ],
53
58
['title', 'customValidator', 'msg' => '{attr} error msg!' ],
54
- ['status', function($status)
55
- {
56
-
59
+ ['status', function($status) {
57
60
if ($status > 3) {
58
61
return true;
59
62
}
@@ -122,7 +125,7 @@ $db->save($safeData);
122
125
{
123
126
$valid = Validation::make($_POST,[
124
127
// add rule
125
- ['title', 'min', 'min' => 40],
128
+ ['title', 'min', 40],
126
129
['freeTime', 'number'],
127
130
])->validate();
128
131
@@ -201,7 +204,7 @@ $db->save($safeData);
201
204
public function addAction()
202
205
{
203
206
$model = new UserModel;
204
- $ret = $model->setData($_POST)->create();
207
+ $ret = $model->setData($_POST)->atScene('create')-> create();
205
208
206
209
if (!$ret) {
207
210
exit($model->firstError());
@@ -223,7 +226,7 @@ $db->save($safeData);
223
226
224
227
$valid = Validation::make($_POST,[
225
228
// add rule
226
- ['title', 'min', 'min' => 40],
229
+ ['title', 'min', 40],
227
230
['freeTime', 'number'],
228
231
['title', 'checkTitle'],
229
232
])
@@ -331,12 +334,12 @@ $valid = Validation::make($_POST,[
331
334
332
335
### ` isEmpty ` -- 是否为空判断
333
336
334
- 是否为空判断, 这个判断作为 ` skipOnEmpty ` 的依据. 默认使用 ` empty($data[$attr]) ` 来判断.
337
+ 是否为空判断, 这个判断作为 ` skipOnEmpty ` 的依据. 默认使用 ` ValidatorList::isEmpty ` 来判断.
335
338
336
339
你也可以自定义判断规则:
337
340
338
341
``` php
339
- ['name', 'string', 'isEmpty' => function($data, $attr ) {
342
+ ['name', 'string', 'isEmpty' => function($value ) {
340
343
return true or false;
341
344
}]
342
345
```
@@ -365,12 +368,11 @@ public function atScene(string $scene) // setScene 的别名方法
365
368
### 进行数据验证
366
369
367
370
``` php
368
- public function validate(array $onlyChecked = [], $stopOnError = null)
371
+ public function validate($stopOnError = null)
369
372
```
370
373
371
374
进行数据验证。 返回验证器对象,然后就可以获取验证结果等信息。
372
375
373
- - ` $onlyChecked ` 可以设置此次需要验证的字段
374
376
- ` $stopOnError ` 是否当出现一个验证失败就立即停止。 默认是 ` true `
375
377
376
378
### 添加自定义的验证器
@@ -472,24 +474,32 @@ public function get(string $key, $default = null)
472
474
验证器 | 说明 | 规则示例
473
475
----------|-------------|------------
474
476
` int ` | 验证是否是 int | ` ['userId', 'int'] `
475
- ` number ` | 验证是否是 number | ` ['userId', 'number'] `
477
+ ` number/num ` | 验证是否是 number | ` ['userId', 'number'] `
476
478
` bool ` | 验证是否是 bool | ` ['open', 'bool'] `
477
479
` float ` | 验证是否是 float | ` ['price', 'float'] `
478
480
` string ` | 验证是否是 string. 支持长度检查 | ` ['name', 'string'] ` , ` ['name', 'string', 'min'=>4, 'max'=>16] `
479
- ` isArray ` | 验证是否是数组 | ....
480
- ` regexp ` | 使用正则进行验证 | ....
481
+ ` alpha ` | 验证值是否仅包含字母字符 | ` ['name', 'alpha'] `
482
+ ` alphaNum ` | 验证是否仅包含字母、数字 | ` ['field', 'alphaNum'] `
483
+ ` alphaDash ` | 验证是否仅包含字母、数字、破折号( - )以及下划线( _ ) | ` ['field', 'alphaDash'] `
484
+ ` isArray ` | 验证是否是json字符串 | ` ['goods', 'isArray'] `
485
+ ` json ` | 验证是否是数组 | ` ['goods', 'json'] `
481
486
` url ` | 验证是否是 url | ` ['myUrl', 'url'] `
482
487
` email ` | 验证是否是 email | ` ['userEmail', 'email'] `
483
- ` ip ` | 验证是否是 ip | ` ['ipAddr', 'ip'] `
488
+ ` date ` | 验证是否是 date | ` ['published_at', 'date'] `
489
+ ` dateFormat ` | 验证是否是 date, 并且是指定的格式 | ` ['published_at', 'dateFormat', 'Y-m-d'] `
490
+ ` ip ` | 验证是否是 IP | ` ['ipAddr', 'ip'] `
491
+ ` ipv4 ` | 验证是否是 IPv4 | ` ['ipAddr', 'ipv4'] `
492
+ ` ipv6 ` | 验证是否是 IPv6 | ` ['ipAddr', 'ipv6'] `
484
493
` required ` | 要求此字段/属性是必须的 | ` ['tagId, userId', 'required' ] `
485
494
` size ` | 验证大小范围, 可以支持验证 ` int ` , ` string ` , ` array ` 数据类型 | ` ['tagId', 'size', 'min'=>4, 'max'=>567] ` ` ['name', 'size', 'max' => 16] `
486
495
` range ` | ` size ` 验证的别名 | 跟 ` size ` 一样
487
496
` length ` | 长度验证( 跟 ` size ` 差不多, 但只能验证 ` string ` , ` array ` 的长度 | ....
488
- ` min ` | 最小边界值验证 | ` ['title', 'min', 'value' => 40] `
489
- ` max ` | 最大边界值验证 | ` ['title', 'max', 'value' => 40] `
490
- ` in ` | 枚举验证 | ` ['id', 'in', 'value' => [1,2,3] `
491
- ` compare ` | 字段值比较 | ` ['passwd', 'compare', 'repasswd'] `
492
- ` callback ` | 自定义回调验证 | ....
497
+ ` min ` | 最小边界值验证 | ` ['title', 'min', 40] `
498
+ ` max ` | 最大边界值验证 | ` ['title', 'max', 40] `
499
+ ` in ` | 枚举验证 | ` ['status', 'in', [1,2,3] `
500
+ ` notIn ` | 枚举验证 | ` ['status', 'notIn', [1,2,3] `
501
+ ` compare/same ` | 字段值比较 | ` ['passwd', 'compare', 'repasswd'] `
502
+ ` regexp ` | 使用正则进行验证 | ` ['name', 'regexp', '/^\w+$/'] `
493
503
494
504
- 关于布尔值验证
495
505
* 如果是 "1"、"true"、"on" 和 "yes",则返回 TRUE
0 commit comments