当前位置: 首页 > 后端技术 > PHP

Laravel7.x自定义校验自定义校验信息

时间:2023-03-30 01:43:47 PHP

需求:实现根据字符串的字符数限制长度。类似max的功能,但是由于内置的??max规则是根据字符计算长度,中文计算有偏差。我们需要使用mb_strlen来计算汉字的个数。只需修改请求中的规则方法(使用Validator::extend()方法)。参数一:规则名称参数二:回调方法参数三:验证信息Validator::extend('mb_max',function($attribute,$value,$parameters,$validator),$message);publicfunctionrules(){$mbMaxSize=40;//字数限制\Validator::extend('mb_max',function($attribute,$value,$parameters,$validator){\Log::info('$parameters',[$value,$parameters[0],mb_strlen($value)]);return(mb_strlen($value)<=intval($parameters[0]));},':attributecannotexceed'.$mbMaxSize.'人物');return['name'=>'required|min:1|mb_max:'.$mbMaxSize,'department'=>'required','detail'=>'required|max:3000',];}