Laravel自定义验证消息参数

时间:2015-10-29 12:04:24

标签: php validation laravel laravel-5.1

我正在使用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添加到邮件数组中,并显示以下消息:The :attribute must be at least :min characters.

当我测试它时,我收到错误消息:

The notice must be at least :min characters.

如何将:min转换为验证规则中指定的数字?!我read the documentation但是它到处都是,我无法理解如何简单地用给定数字替换:min。

2 个答案:

答案 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.'