TP5.0.24 验证器内置规则中max 如果输入中文 验证长度错误的问题

验证器 中需要验证最大字符数,例如

protected $rule = [
'name' => 'require|max:50'
];
protected $message = [
'name.require' => '分类名称必须填写',
'name.max' => '分类名称最多不能超过50个字符',
];

 

'name' => 'require|max:50', 已经定义最大50个字符,但是输入中文的时候 不到20个字符就说字符超过了50

解决方法:

 

修改底层VALIDATE类thinkphp\library\think\validate.php的MAX方法 加上UTF8参数,$length = mb_strlen((string) $value,'utf8');

posted @ 2019-12-12 08:58  fogwu  阅读(688)  评论(0编辑  收藏  举报