Laravel阵列验证消息值

时间:2016-03-14 17:30:01

标签: laravel laravel-5 laravel-5.1 laravel-5.2

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

示例:

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

这会输出类似“email @ address is invalid”的内容。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

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

例如:

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

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

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

可以找到更多信息here

答案 1 :(得分:0)

要访问数组验证的索引,我只是迭代我试图验证的元素,而不是使用*通配符。

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

    return $messages;
}

希望这有助于任何遇到同样问题的人。

答案 2 :(得分:0)

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

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

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