Laravel 7.x 自定义验证 自定义验证信息

需求:实现按字符串字数进行长度限制。
类似max的功能,但是由于自带max 规则是按照字符计算长度,对中文计算存在偏差。我们需要使用mb_strlen来计算中文字数。

在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',
        ];
    }

帝国金的菜园子
分享一些工作学习中的经验
188 声望
3 粉丝
0 条评论
推荐阅读
win10 docker laradock 搭建PHP“简易”开发环境
安装windows版本docker,并且安装,这里我选择使用hyperV【官网】:[链接]下载laradock【github】:[链接] {代码...} 进入laradock文件夹复制.env.example到.env打开.env,按需进行一些调整,比如: {代码...} 按...

小金子阅读 469

PHP转Go实践:xjson解析神器「开源工具集」
我和劲仔都是PHP转Go,身边越来越多做PHP的朋友也逐渐在用Go进行重构,重构过程中,会发现php的json解析操作(系列化与反序列化)是真的香,弱类型语言的各种隐式类型转换,很大程度的减低了程序的复杂度。

王中阳Go11阅读 2.7k评论 4

封面图
Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go6阅读 2.9k评论 4

封面图
图片防盗链破解 解决图片防盗链问题 反向代理
当客户端(浏览器)向服务器请求内容的时候,会提交一个header,这个header中包含了如:浏览器信息、cookie等内容,那么有一个叫referer的东东,也包含在这里面。

TANKING7阅读 11.7k评论 5

Hyperf 3.0 发布,PHP 新时代
在过去的一年半时间里,Hyperf 2.2 共发布了 35 个小版本,使 Hyperf 达到了一个前所未有的高度,这里也获得了一些不错的数据反馈。

huangzhhui4阅读 1.5k评论 1

封面图
微信公众号开发:自动回复文本/图片/图文消息/关键词回复/上传素材/自定义菜单
对接流程1、申请微信公众号测试账号URL:[链接]2、登录,配置开发者服务器URL和Token开发者服务器配置代码:config.php {代码...} URL是config.php在你服务器的URLToken是上面代码自己设置的Token搞定之后,就能完...

TANKING2阅读 10.6k

Ajax实现搜索联想 搜索关键词提醒 无刷新搜索
通过javascript监听搜索框的内容,调用后端即可。(1)javascript监听搜索框的内容(2)把搜索框的关键词传给后端进行搜索(3)搜索到结果,遍历到页面

TANKING1阅读 4.7k

188 声望
3 粉丝
宣传栏