| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | <?phpnamespace app\api\validate;use think\Validate;use app\common\Rule\IdCardRule;class Inspection extends Validate{    /**     * 验证规则     */    protected $rule = [        // 基础信息        'id'                => 'integer|gt:0',        'name'              => 'require|length:1,50|chsAlpha',        'phone'             => 'require|mobile|checkPhoneUnique',        'province_adcode'   => 'require|max:50',        'city_adcode'       => 'require|max:50',        'district_adcode'   => 'require|max:50',        'address'           => 'require|max:255',        'id_card_front'     => 'require|max:255',        'id_card_back'      => 'require|max:255',        'id_card'           => 'require|checkIdCard',    ];    /**     * 提示消息     */    protected $message = [        // 基础信息        // 'id.require'            => '申请ID不能为空',        'id.integer'            => '申请ID必须是整数',        'id.gt'                 => '申请ID必须大于0',        'name.require'          => '姓名不能为空',        'name.length'           => '姓名长度必须在1-50个字符之间',        'name.chsAlpha'         => '姓名只能包含中文、字母',        'phone.require'         => '联系电话不能为空',        'phone.mobile'          => '联系电话格式不正确',        'phone.checkPhoneUnique' => '该手机号已被申请',        'province_adcode.require' => '省级编码不能为空',        'province_adcode.max'   => '省级编码长度不能超过50个字符',        'city_adcode.require'   => '市级编码不能为空',        'city_adcode.max'       => '市级编码长度不能超过50个字符',        'district_adcode.require' => '区县编码不能为空',        'district_adcode.max'   => '区县编码长度不能超过50个字符',        'address.require'       => '详细地址不能为空',        'address.max'           => '详细地址长度不能超过255个字符',        'id_card_front.require' => '身份证正面照片不能为空',        'id_card_front.max'     => '身份证正面照片路径长度不能超过255个字符',        'id_card_back.require'  => '身份证反面照片不能为空',        'id_card_back.max'      => '身份证反面照片路径长度不能超过255个字符',        'id_card.require'       => '身份证号不能为空',        'id_card.checkIdCard'   => '身份证号格式不正确',    ];    /**     * 验证场景     */    protected $scene = [        // 创建申请        'create' => ['name', 'phone', 'province_adcode', 'city_adcode', 'district_adcode','address', 'id_card_front', 'id_card_back', 'id_card'],        // 查看详情        'detail' => ['id'],        // 修改申请        'update' => ['id', 'name', 'phone', 'province_adcode', 'city_adcode', 'district_adcode','address', 'id_card_front', 'id_card_back', 'id_card'],    ];    /**     * 自定义验证方法 - 验证手机号是否已申请     */    protected function checkPhoneUnique($value, $rule, $data = [])    {        $model = new \app\common\model\inspection\InspectionApplication();        $where = ['phone' => $value];                // 如果是修改,排除当前记录        if (isset($data['id']) && $data['id'] > 0) {            $where['id'] = ['neq', $data['id']];        }                $exists = $model->where($where)->find();        if ($exists) {            return '该手机号已提交过申请';        }        return true;    }    /**     * 自定义验证方法 - 验证身份证号格式     */    protected function checkIdCard($value, $rule, $data = [])    {        $result = IdCardRule::validate($value);        return $result['valid'] ? true : $result['message'];    }} 
 |