如何显示消息中的参数? laravel 验证者
How to show the parameter in message? laravel validator
Note: I done searching a solution from other similar questions but none helped.
我在 AppServiceProvider.php
中创建了一个自定义验证器
Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
//some statements here
});
验证器与下面的示例完全一样
'birthdate' => 'required|eligible_age:22'
我的问题是如何使用参数显示错误消息?像下面的例子:
The birthdate is not eligible. (must at least 22 years old).
您应该使用 addReplacer 来包含命名参数,例如 age。请参阅下面的示例。
解决方案 1。直接把message放到validator里面。
Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
$validator->addReplacer('eligible_age', function($message, $attribute, $rule, $parameters){
return str_replace([':age'], $parameters, 'The '. $attribute .' is not eligible. (must at least :age years old).');
});
//return either true or false
});
解决方案 2。只需命名参数,并在 validation.php.
中设置消息
Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
$validator->addReplacer('eligible_age', function($message, $attribute, $rule, $parameters){
return str_replace([':age'], $parameters, $message);
});
//return either true or false
});
而你在lang\en\validation.php的消息中,你可以使用年龄来显示参数。
'eligible_age' => 'The :attribute is not eligible. (must at least :age years old).'
Note: I done searching a solution from other similar questions but none helped.
我在 AppServiceProvider.php
中创建了一个自定义验证器Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
//some statements here
});
验证器与下面的示例完全一样
'birthdate' => 'required|eligible_age:22'
我的问题是如何使用参数显示错误消息?像下面的例子:
The birthdate is not eligible. (must at least 22 years old).
您应该使用 addReplacer 来包含命名参数,例如 age。请参阅下面的示例。
解决方案 1。直接把message放到validator里面。
Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
$validator->addReplacer('eligible_age', function($message, $attribute, $rule, $parameters){
return str_replace([':age'], $parameters, 'The '. $attribute .' is not eligible. (must at least :age years old).');
});
//return either true or false
});
解决方案 2。只需命名参数,并在 validation.php.
中设置消息Validator::extend('eligible_age', function ($attribute, $value, $parameters, $validator) {
$validator->addReplacer('eligible_age', function($message, $attribute, $rule, $parameters){
return str_replace([':age'], $parameters, $message);
});
//return either true or false
});
而你在lang\en\validation.php的消息中,你可以使用年龄来显示参数。
'eligible_age' => 'The :attribute is not eligible. (must at least :age years old).'