猿问

以 JSON 形式返回验证错误消息 - Laravel 6

我想以 JSON 格式返回失败的验证尝试消息。我以前使用过类似的东西,它在 Laravel 5 上工作,我相信......


if ($validator->fails()) {    

    return response()->json($validator->messages(), 200);

}

但是,对于我们的新项目,我们使用的是 Laravel 6,上面的内容只是返回一个空白页面。


在 Laravel 6 中,以下成功返回错误消息,尽管不是在 JSON 中......


if ($validator->fails()) {  

    $msg = $validator->messages();

    dd($msg);

}

response()Laravel 6中的工作方式必须有所改变。


任何想法如何在 Laravel 6 中以 JSON 格式返回验证消息?谢谢。


哔哔one
浏览 219回答 2
2回答

红颜莎娜

这里,if($validatedData->fails()){   return response()->json([      'status'   => 'error',      'message'  => $validatedData->getMessageBag()   ],400);}您可以在 JSON 中获取这些错误,这是示例代码 $.ajax({    url: "{{ route('your_route_name') }}",    method: 'post',    cache: false,    contentType: false,    processData: false,    data: formData,    success: function(response){        //....YOUR SUCCESS CODE HERE    },    error: function(response){        // HERE YOU CAN GET ALL THE ERRORS IN JSON        var data = JSON.parse(response.responseText);        if(data.message){            if(data.message.f_name){                $('input[name=f_name]')                .parents('.form-group')                .find('.help-block')                .html(data.message.f_name)                .css('display','block');            }else{                $('input[name=f_name]')                .parents('.form-group')                .find('.help-block')                .html('')                .css('display','none');            }        }else{            $('.help-block').html('').css('display','none');        }    }});

皈依舞

这应该有效 $validator = Validator::make($request->all(), [                'email' => 'required|email',                'password' => 'required',            ]);     if ($validator->fails()) {                        $messages = $validator->errors()->all();                        $msg = $messages[0];                        return response()->json(['success_code' => 401, 'response_code' => 0, 'response_message' => $msg]);                    }
随时随地看视频慕课网APP
我要回答