繁体   English   中英

Laravel扩展验证自定义消息

[英]Laravel Extended Validation custom message

我想创建这个扩展验证。

Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
   // I guess I should be setting the error message for this here.(Its dynamic)
   // We can return true or false here depending upon our need.  
}

我会像这样使用这个规则

'my_field' => 'required|my_custom_validation_rule'

我想为“ my_custom_validation_rule ”的错误使用一些动态消息

我无法从文档中找到有关它的内容。 无论如何要做到这一点?

extend方法允许将消息作为第三个参数传递:

Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
    // ...
}, 'my custom validation rule message');

默认情况下,您只能使用动态变量,即:attribute 如果要添加更多,请使用Validator::replacer()

Validator::replacer('my_custom_validation_rule', function($message, $attribute, $rule, $parameters){
    return str_replace(':foo', $parameters[0], $message);
});

您还可以在验证转换文件下为自定义验证规则定义消息。

/resources/lang/en/validation.php

....
'unique'                    => 'The :attribute has already been taken.',
'uploaded'                  => 'The :attribute failed to upload.',
'url'                       => 'The :attribute format is invalid.',
//place your translation here
'my_custom_validation_rule' => 'The :attribute value fails custom validation.'

可能(不是很优雅)的解决方法是:

$message = 'my custom validation rule message' . request()->get('param');
Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
    //
}, $message);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM