Laravel 自定义验证消息参数
Posted
技术标签:
【中文标题】Laravel 自定义验证消息参数【英文标题】:Laravel custom validation message parameter 【发布时间】: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: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 替换为给定的数字。
【问题讨论】:
【参考方案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.'
【讨论】:
以上是关于Laravel 自定义验证消息参数的主要内容,如果未能解决你的问题,请参考以下文章