以 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);
}

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

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

在这里,

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]);
}

相关内容

  • 没有找到相关文章

最新更新