Ошибка проверки в API-ответе в laravel 5.6 - PullRequest
0 голосов
/ 02 мая 2019

Я хочу хранить данные через API. Это работает, но проблема в том, что когда я добавляю подтверждение, оно не выдает мне соответствующего сообщения. Как я могу это исправить? Заранее спасибо

Вот мой маршрут

Route::post('api/add_user', 'TestApiController@store'); 

Вот мой контроллер

public function store(Request $request)
{

    $validation = Validator::make(Request::all(), [
        'name' => 'required',
        'phone' => 'required',
        'email' => 'required'
    ]);


    if ($validation->errors()) {
        return $errors->toJson();
    } else {
        $testApi = new testApi();


        $testApi->name = $request->name;
        $testApi->phone = $request->phone;
        $testApi->email = $request->email;

        $testApi->save();


        return "ok";
    }

}

Ответы [ 2 ]

1 голос
/ 02 мая 2019

чтобы справиться с этим, ваш метод должен выглядеть следующим образом:

 public function store(Request $request)
    {


$validator = Validator::make($request->all(), [
            'name' => 'required',
            'phone' => 'required',
            'email2' => 'required|email'
        ]);

 if($validator->fails()){
            // here we return all the errors message
            return response()->json(['errors' => $validator->errors()], 422);
        }


        $testApi = new testApi();

        $testApi->name = $request->name;
        $testApi->phone = $request->phone;
        $testApi->email = $request->email;

        $testApi->save();

       // 201 http code means that the server has proceced your request correctly
        return response()->json([], 201);
    }
0 голосов
/ 02 мая 2019

Вам не нужно делать это вручную. просто

public function store(Request $request)
{
    $request->validate([
        'name' => 'required',
        'phone' => 'required',
        'email' => 'required'
    ]);

    $testApi = new testApi();

    $testApi->name = $request->name;
    $testApi->phone = $request->phone;
    $testApi->email = $request->email;

    $testApi->save();

    return "ok";
}

это автоматически обрабатывает проверку и возвращает сообщение об ошибке, если оно недействительно.

Обновление

если хочешь придерживаться своего подхода. это то место, где вам нужно измениться.

if ($validation->fails()) {
    return $validation->errors();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...