# 验证规则篇

如何使用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; //手机号

# 结语

注意

项目开发阶段,往往工作量较大,中小型公司受限于资金实力限制.人手不足,因此开发阶段以上验证规则足够使用,可以先行只做基础数据类型校验过滤.后续项目再进行专门完善

欢迎同业开发者一起完善自定义验证规则

Last Updated: 3/8/2025, 7:32:20 AM