【问题标题】:Laravel Validation - custom rule, custom error messageLaravel 验证 - 自定义规则,自定义错误信息
【发布时间】:2016-10-21 15:12:37
【问题描述】:

我正在扩展 Laravel 验证规则以创建“两个用户提供的字段之间”的规则 - between 规则仅处理“两个值之间”。

Validator::extend('between_fields', function($attribute, $value, $parameters, $validator) {
    $data = $validator->getData();

    $min = array_get( $data, $parameters[0], $parameters[0] );
    $max = array_get( $data, $parameters[1], $parameters[1] );

    return $value >= $min && $value <= $max;
});

这很好用,但我想定义一个使用数值的错误消息。我已经设置了这样的消息:

'between_fields' => ':attribute must be between :min and :max.',

...这就是现有 between 规则的工作原理,但 :min:max 不会被任何东西取代。

如何将验证器扩展中的值传递给消息处理程序?

【问题讨论】:

    标签: php validation laravel-5.2


    【解决方案1】:

    您必须使用Validator::replacer()

    Validator::replacer('between_fields', function($message, $attribute, $rule, $parameters){ return str_replace(...); //replace placeholders with the values you want });

    【讨论】:

    • 啊,我知道我一定遗漏了一些东西 :) 原来 is 在文档中,只是没有以明显的方式命名哈哈。非常感谢。一旦我跳回那个项目并对其进行测试,我很快就会接受答案
    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2014-03-25
    • 2017-04-11
    • 2018-02-18
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多