猿问

如何显示消息中的参数?Laravel 验证器

注意:我从其他类似问题中搜索了解决方案,但没有帮助。


我在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).


哈士奇WWW
浏览 112回答 1
1回答

墨色风雨

您应该使用addReplacer来包含一个命名参数,例如age。请参见下面的示例。解决方案 1。直接将消息放入验证器中。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中的消息中,您可以使用 age 来显示参数。'eligible_age' => 'The :attribute is not eligible. (must at least :age years old).'
随时随地看视频慕课网APP
我要回答