Laravel验证 - 自定义规则,自定义错误消息

时间:2016-06-20 11:21:38

标签: php validation laravel-5.2

我正在扩展Laravel验证规则,以便在两个用户提供的字段之间创建规则" - between规则仅处理两个值之间的#34;。

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不会被任何内容替换。

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

1 个答案:

答案 0 :(得分:1)

您必须使用Validator::replacer()

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