我正在扩展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扩展中的值传递给消息处理程序?
答案 0 :(得分:1)
您必须使用Validator::replacer()
Validator::replacer('between_fields', function($message, $attribute, $rule, $parameters){
return str_replace(...); //replace placeholders with the values you want
});