# 验证规则篇
如何使用laravel-fast-api组件包的自定义验证规则
# 介绍:
# 背景:
- 虽然laravel自带了很多验证规则,并且验证不通过的时候返回422.然而在一些开发工具中例如 ApiPost (opens new window) 中 或者 uniapp中无法接收到验证不通过的信息
- 基于上述情况,解决策略是通过自定义验证规则,在验证不通过的时候,通过封装的验证规则异常,截断正常的response响应,直接抛出.
# 分类:
自定义验证规则分为三种
- 公共位于
App\Rules\Public
这里是一些验证是否是数字,是否是字符串等基础验证 - 通用位于
App\Rules\Common
这里是验证与业务无关的 例如 手机号,身份证等 - 与业务逻辑紧密关联的 自定义 建议参考
App\Rules\LaravelFastApi
# 公共验证规则说明
注意
除了修改好的自定义模版,在 app\Rules\ReplaceRule.php
下也准备了替换模版,同时在生成控制器的时候模版中也使用了公共的验证规则
当你生成控制器的时候,已经use了如下自定义验证规则
use App\Rules\Public\Required; //必填
use App\Rules\Public\Numeric; //数字
use App\Rules\Public\CheckString; //字符串
use App\Rules\Public\CheckBetween; //字符串长度限定
use App\Rules\Public\CheckArray; //数组
use App\Rules\Public\FormatTime; //时间格式
use App\Rules\Public\CheckUnique; //唯一性校验
use App\Rules\Public\ChineseCodeNumberLine; //限制为汉字,字母和下划线
# 通用验证规则说明
use App\Rules\Common\IdNumber; //身份证号
use App\Rules\Common\Phone; //手机号
# 结语
注意
项目开发阶段,往往工作量较大,中小型公司受限于资金实力限制.人手不足,因此开发阶段以上验证规则足够使用,可以先行只做基础数据类型校验过滤.后续项目再进行专门完善
欢迎同业开发者一起完善自定义验证规则