Возвратите сообщение об ошибке проверки как JSON - Laravel 6 - PullRequest
1 голос
/ 23 сентября 2019

Я хочу вернуть сообщение о неудачной попытке проверки в 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.

Есть идеи, как получить сообщения о проверке, которые будут возвращены в JSON в Laravel 6?Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Здесь,

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');
        }
    }
});
0 голосов
/ 23 сентября 2019

Это должно работать

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