我正在使用laravel 5.1。我有一个summernotejs表单元素。我已成功创建自定义验证规则,该规则采用表单输入提供的HTML,剥离标记,并对文本内容进行strlen()
调用。因此,我可以看到没有任何标签的消息的长度。
这是我的验证规则:
Validator::extend('strip_min', function ($attribute, $value, $parameters, $validator) {
return strlen(strip_tags($value)) >= $parameters[0];
});
我通过指定:strip_min:10
或strip_min:20
等来调用验证规则,其中数字是剥离标记后的最小字符串长度。
我想添加自定义消息,说内容长度必须至少为n
个字符。
关于这方面的Laravel文档是没用的。我打开了我的validation.php
文件,其中包含所有错误消息。
我已将密钥strip_min
添加到邮件数组中,并显示以下消息:The :attribute must be at least :min characters.
当我测试它时,我收到错误消息:
The notice must be at least :min characters.
如何将:min
转换为验证规则中指定的数字?!我read the documentation但是它到处都是,我无法理解如何简单地用给定数字替换:min。
答案 0 :(得分:12)
找到了。
Validator::extend('strip_min', function ($attribute, $value, $parameters, $validator) {
$validator->addReplacer('strip_min', function($message, $attribute, $rule, $parameters){
return str_replace([':min'], $parameters, $message);
});
return strlen(strip_tags($value)) >= $parameters[0];
});
答案 1 :(得分:0)
在validation.php文件中使用它
'strip_min' => 'The :attribute must be at least :strip_min characters.'