# 增强表单验证 **Repository Path**: qingcodene/w7-engine-validate ## Basic Information - **Project Name**: 增强表单验证 - **Description**: PHP验证解决方案,一个让你的表单验证更为方便,快捷,安全的扩展,满足你的一切验证需求。 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: 3.x - **Homepage**: https://v.neww7.com/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 653 - **Created**: 2021-09-13 - **Last Updated**: 2021-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 增强表单验证 [](https://gitee.com/we7coreteam/w7-engine-validate/stargazers) [](https://gitee.com/we7coreteam/w7-engine-validate/members)   [](https://v.neww7.com)   ## 介绍 一个让你的表单验证更为方便,快捷,安全的扩展,满足你的一切验证需求。 ## 说明 此验证基于`illuminate/validation`做了如下扩展 - 可通过类的方式定义一个[验证器](https://v.neww7.com/3/Validate.html) - 增加[验证场景](https://v.neww7.com/3/Scene.html) - 增加[规则管理器](https://v.neww7.com/3/RuleManager.html) - 增加数据[默认值](https://v.neww7.com/3/Default.html) - 增加数据[过滤器](https://v.neww7.com/3/Filter.html) - 增加[场景事件](https://v.neww7.com/3/Event.html) - 修改了[自定义验证规则](https://v.neww7.com/3/Rule.html) - [自定义消息](https://v.neww7.com/3/Message.html) 增加了对内容的引用 - 继承集合类增加一个[验证集合](https://v.neww7.com/3/Collection.html) > 验证器支持Laravel的内置规则,内置规则文档可查看[规则文档](https://learnku.com/docs/laravel/7.x/validation/5144#c58a91) ## 安装 使用composer命令 ``` shell composer require w7/engine-validate ``` 完整文档查看[完整文档](https://v.neww7.com) # 验证器 ## 简单验证 支持简单定义一个验证器并进行验证: ```php try { $data = Validate::make([ 'user' => 'required|email', 'pass' => 'required|lengthBetween:6,16', ], [ 'user.required' => '请输入用户名', 'user.email' => '用户名格式错误', 'pass.required' => '请输入密码', 'pass.lengthBetween' => '密码长度为6~16位', ])->check($data); } catch (ValidateException $e) { echo $e->getMessage(); } ``` 如果验证通过,则返回所有通过验证的值,如未通过,则抛出一个`W7\Validate\Exception\ValidateException`异常 ## 验证器定义 为具体的验证场景或者数据表单定义验证器类,我们需要继承`W7\Validate\Validate`类,然后实例化后直接调用验证类的`check`方法即可完成验证,下面是一个例子: 我们定义一个`LoginValidate`验证器类用于登录的验证。 ```php class LoginValidate extends Validate { protected $rule = [ 'user' => 'required|email', 'pass' => 'required|digits_between:6,16', ]; protected $message = [ 'user.required' => '请输入用户名', 'user.email' => '用户名格式错误', 'pass.required' => '请输入密码', 'pass.digits_between' => '密码长度为6~16位', ]; } ``` >