Laravel 7.x 自定义验证 自定义验证信息
需求:实现按字符串字数进行长度限制。
类似max的功能,但是由于自带max 规则是按照字符计算长度,对中文计算存在偏差。我们需要使用mb_strlen来计算中文字数。
【Laravel 7.x 自定义验证 自定义验证信息】在request 中修改 rules方法即可(使用 Validator::extend() 方法)。
参数1:规则名
参数2:回调方法
参数3:验证信息
Validator::extend('mb_max',
function ($attribute, $value, $parameters, $validator),
$message);
public function rules()
{
$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]));
}, ':attribute 不能超过' . $mbMaxSize . '个字');
return [
'name' => 'required|min:1|mb_max:' . $mbMaxSize,
'department' => 'required',
'detail' => 'required|max:3000',
];
}
推荐阅读
- SpringBoot调用公共模块的自定义注解失效的解决
- python自定义封装带颜色的logging模块
- 列出所有自定义的function和view
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 自定义MyAdapter
- laravel框架泛解
- Android自定义view实现圆环进度条效果
- Flutter自定义view|Flutter自定义view —— 闯关进度条
- js保留自定义小数点
- django|django 自定义.save()方法