| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace App\Http\Validator;
- use Illuminate\Support\Facades\Validator;
- class BaseValidator extends Validator
- {
- // 当前模型所有验证规则
- public static $rules = [];
- // 当前模型所有错误提示信息
- public static $msgs = [];
- // 当前模型所有验证字段
- public static $fields = [];
- // 当前模型所有验证场景
- public static $scenes = [];
- public function __construct($rules=[], $msgs=[], $fields=[], $scens=[])
- {
- self::$rules = $rules;
- self::$msgs = $msgs;
- self::$fields = $fields;
- self::$scenes = $scens;
- }
- /**
- * 验证表单或请求参数
- * @param $request 请求数据
- * @param string $scene 场景,为空则全部验证
- * @return int|mixed
- */
- public function checkParams($request, $scene=''){
- // 存在验证场景
- if($scene){
- $sceneFields = isset(self::$scenes[$scene])? self::$scenes[$scene] : [];
- if(empty($sceneFields)){
- return 1008;
- }
- foreach (self::$rules as $key => $rule){
- if(!in_array($key, $sceneFields)){
- unset(self::$rules[$key]);
- unset(self::$fields[$key]);
- }
- }
- }
- // 验证数据
- $validator = Validator::make($request, self::$rules, self::$msgs, self::$fields);
- if ($validator->fails()) {
- return getValidatorError($validator);
- }
- return $request;
- }
- }
|