【问题标题】:Laravel custom validation message parameterLaravel 自定义验证消息参数
【发布时间】:2016-01-29 13:35:23
【问题描述】:

我正在使用 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 替换为给定的数字。

【问题讨论】:

    标签: php validation laravel laravel-5.1


    【解决方案1】:

    发现了。

    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];
    });
    

    【讨论】:

      【解决方案2】:

      在validation.php文件中使用这个

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

      【讨论】:

        猜你喜欢
        • 2014-05-31
        • 2017-06-28
        • 2017-12-13
        • 2016-10-25
        • 2020-07-18
        • 2017-11-19
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多