Laravel自定义验证消息参数

13

我正在使用laravel 5.1版本。我有一个summernotejs表单元素。我成功地创建了自定义验证规则,该规则获取来自表单输入的HTML,去除标记,并在文本内容上执行strlen()调用。因此,我可以查看不带任何标记的消息长度。

这是我的验证规则:

Validator::extend('strip_min', function ($attribute, $value, $parameters, $validator) {
    return strlen(strip_tags($value)) >= $parameters[0];
});

我通过指定strip_min:10strip_min:20等来调用验证规则,其中数字是剥离标签后的最小字符串长度。

我想添加一个自定义消息,说明内容长度需要至少为n个字符长。

Laravel文档在这方面是无用的。我已经打开了包含所有错误消息的validation.php文件。

我已将strip_min键添加到消息数组中,并设置了消息::attribute必须至少为:min个字符。

当我测试时,出现了错误消息:

The notice must be at least :min characters.
我该如何将 :min 转换为验证规则中指定的数字?我已经阅读了文档,但是它讲得太散了,我无法理解如何仅仅用给定的数字替换 :min 。
2个回答

20

发现了。

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

在 validation.php 文件中使用此代码

    'strip_min' => 'The :attribute must be at least :strip_min characters.'        

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接