为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
哈士奇WWW 2022-12-23 13:24:10
注意:我从其他类似问题中搜索了解决方案,但没有帮助。我在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).
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

您应该使用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).'


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号