Skip to content

Commit f267dd3

Browse files
authored
Merge pull request #29 from dongasai/master
文档完善
2 parents d1d4916 + c3c751c commit f267dd3

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- 支持前置验证检查, 自定义如何判断非空
1313
- 支持将规则按场景进行分组设置。或者部分验证
1414
- 支持在进行验证前对值使用过滤器进行净化过滤[内置过滤器](#built-in-filters)
15+
- 支持在进行验证前置处理和后置处理[独立验证处理](#on-in-Validation)
1516
- 支持自定义每个验证的错误消息,字段翻译,消息翻译,支持默认值
1617
- 支持基本的数组检查,数组的子级(`'goods.apple'`)值检查, 通配符的子级检查 (`'users.*.id' 'goods.*'`)
1718
- 方便的获取错误信息,验证后的安全数据获取(只会收集有规则检查过的数据)
@@ -110,6 +111,18 @@ use Inhere\Validate\Validation;
110111

111112
class PageRequest extends Validation
112113
{
114+
# 进行验证前处理,返回false则停止验证,但没有错误信息,可以在逻辑中调用 addError 增加错误信息
115+
public function beforeValidate(): bool
116+
{
117+
return true;
118+
}
119+
# 进行验证后处理,该干啥干啥
120+
public function afterValidate(): bool
121+
{
122+
return true;
123+
}
124+
125+
113126
public function rules(): array
114127
{
115128
return [
@@ -347,6 +360,48 @@ class AdemoValidator extends \Inhere\Validate\Validator\AbstractValidator
347360
['status', new AdemoValidator()]
348361
```
349362

363+
<a name="on-in-Validation"></a>
364+
## **验证前置/后置**处理
365+
366+
* 方式1: 在 `Validation`
367+
368+
> 该方法与`onBeforeValidate`&`onAfterValidate`有冲突
369+
370+
```php
371+
use Inhere\Validate\Validation;
372+
373+
class PageValidation extends Validation
374+
{
375+
# 进行验证前处理,返回false则停止验证,但没有错误信息,可以在逻辑中调用 addError 增加错误信息
376+
public function beforeValidate(): bool
377+
{
378+
return true;
379+
}
380+
# 进行验证后处理,该干啥干啥
381+
public function afterValidate(): bool
382+
{
383+
return true;
384+
}
385+
}
386+
```
387+
* 方式2: `onBeforeValidate`&`onAfterValidate`
388+
```php
389+
use Inhere\Validate\Validation;
390+
391+
$v = Validation::make(['name' => 'inhere'], [
392+
['name', 'string', 'min' => 3, 'filter' => 'trim|upper']
393+
]);
394+
395+
$v->onBeforeValidate(function (Validation $v) {
396+
return true;
397+
});
398+
399+
$v->onAfterValidate(function (Validation $v) {
400+
401+
});
402+
403+
$v->validate();
404+
```
350405

351406
## 一个完整的规则示例
352407

0 commit comments

Comments
 (0)