Laravel 数组验证消息值

Laravel Array Validation Message Value

对于数组验证消息,有没有办法显示值而不是属性?在不使用自定义验证器的情况下这样做。

示例:

$messages = [
   ‘*' => ':value is invalid.’
]

这将输出类似 "email@address is invalid" 的内容。

感谢您的帮助!

对于完全自定义的字符串,您可以将自定义消息作为第三个参数传递给 Validator::make() 方法。如果您只需要通用描述符,您可以使用一些内置的占位符,例如 :attribute:size:values

例如:

$messages = ['required' => 'The :attribute field is required.'];

$validator = Validator::make($input, $rules, $messages);

:attribute 将替换为正在验证的字段的实际名称。

可以找到更多信息 here

为了访问索引以进行数组验证,我只是遍历要验证的元素,而不是使用 * 通配符。

public function messages()
{
    $messages = [];
    foreach($this->emails as $key => $email) {
        $messages[$key] = $email . ' is an invalid email address.';
    }

    return $messages;
}

希望这对遇到同样问题的人有所帮助。

如果有人仍在寻找最新的 Laravel 版本,答案是在消息输出中使用 :input 参数:

'between' => 'The :attribute value :input is not between :min - :max.'

文档:https://laravel.com/docs/5.7/validation#custom-error-messages