<?php namespace App\Http\Validators; use App\Http\Services\SupplierReceiptService; use App\Model\SupplierChannelModel; use Validator; class ReceiptValidator { //保存相关的验证,别问我为什么不用laravel自带的form-request类 //因为控制器那边已经被之前的人魔改的难用的一比,而且控制器那边还接收了一大堆统一变量 public function checkSave($data, $returnAllError = false) { $receipt = $data; //整理下请求数据 $rules = [ "bank_name" => "required", "bank_adderss" => "required", "account_no" => 'required|alpha_num', //"account_no" => "required|regex:/^[0-9\-]+$/", "receipt_type" => 'required', "certificate" => "required", ]; if ($receipt['receipt_type'] == 2) { $rules["swift_code"] = 'required'; $rules["account_adderss"] = 'required'; $rules["account_name"] = 'required'; $rules["bank_adderss"] = 'required'; $rules["nation_id"] = 'required'; $rules['account_no'] = 'required|alpha_num'; //$rules["international_code"] = 'required'; } $messages = $this->messages(); $validator = Validator::make($receipt, $rules, $messages); $otherErrors = []; if ($otherErrors) { return $otherErrors; } //判断联系方式的表单验证 if ($validator->fails()) { if ($returnAllError) { return $validator->errors()->all(); } else { return $validator->errors()->first(); } } } private function messages() { return [ 'receipt_type.required' => '银行类型 不能为空', 'bank_name.required' => '开户名称 不能为空', 'bank_adderss.required' => '开户行 不能为空', 'swift_code.required' => '银行国际代码 Swift Code 不能为空', 'account_no.required' => '银行账号 不能为空', 'account_no.regex' => '国内银行账号仅支持输入数字且中间不能有空格', 'account_no.alpha_num' => '银行账号都只允许输入英文和数字', 'account_name.required' => '账户名称 不能为空', 'certificate.required' => '银行信息凭证 不能为空', 'account_adderss.required' => '银行地址 不能为空', 'nation_id.required' => '银行国家 不能为空', //'international_code.required' => '国际代码 不能为空', ]; } }