Laravel 5.4 Validator - 显示传递的错误值

时间:2017-05-26 10:42:16

标签: php laravel validation

有没有办法在验证器消息中插入从用户传递的错误值?

更新

例如,如果该字段必须接受来自" 1"的值。至" 10"并插入" 200"我想写: 'The :attribute must be between 1 and 10. Your value is 200.'

$validator_default_message = [
    'digits_between'  => 'The ":attribute" must be between :min and :max.',
];
$validator = Validator::make($phase, [
                'depth'     => 'digits_between:0,10',
            ], $validator_default_message);
            if ($validator->fails()) {
                $status = $validator->failed();
                $errorMessage = $validator->messages()->all();            
                abort($status, $errorMessage);
            }

我想留言:The depth must be between 0 and 10. Your input value is 200

谢谢。

5 个答案:

答案 0 :(得分:1)

在请求文件中添加:

extension EKParticipant {
    var optionalURL: URL? {
        return participantURL(self)
    }

    var hasURL: Bool {
        return participantHasNonNilURL(self)
    }
}

了解更多信息,请点击此处:https://laravel.com/docs/5.4/validation#customizing-the-error-messages

答案 1 :(得分:1)

public function messages()
{
    return [
        'fieldname.numeric' => 'The :attribute must be numeric. Your value is '.$request->input('fieldname')
    ];
 }

答案 2 :(得分:0)

public function messages()
{
    return [
        'title.required' => 'A title is required',
        'body.required'  => 'A message is required',
    ];
}

so basically the rule of the game is 
return [
yourFieldName.ValidationRule => Customessage
]

and $request->input('fieldname') to access the value

这是一个来自laravel doc

的例子

答案 3 :(得分:0)

这可能会为您提供更多见解:

https://laracasts.com/discuss/channels/general-discussion/laravel-5-custom-error-messages

可以在这里放置messages()方法:app / Http / Requests / YourRequest.php

来自@Laracasts:

使用Laravel 5 .4并看到validate()方法可选地接受messages []作为其第三个参数并执行此操作。

var array=[{id:1, names:["john","james","alice"]},
       {id:2, names:["lisa","carlos","josh"]}]

var obj={id:3, names:["david"]}

array.push(obj);

console.log(array);

答案 4 :(得分:0)

如果您使用Validator方法的validate()实例,它将返回到具有旧值的页面,可以使用old('form field')检索该值old('title')

在您的视图中,您可以使用以下方法检查特定字段和规则是否有错误消息:

if($errors->has('input_name.numeric')){
    //code
)

在这里,您可以使用旧的输入值来返回消息:

{{$errors->get('input_name.numeric').
  ' Your value was ' . old('input_name') . '.'}}

这将打印例如:

  

input_name必须介于1和10之间。您的值为200。

可以找到有关检索旧输入的文档here