How to remove console error 422 (Unprocessable Content)

Viewed 45

I write validation for email in my controller

public function store(Request $request)
{

     /*
     * validate request
     */
    $request->validate([
        'email' => ['required', 'unique:leads', 'email'],
    ]);

    return response()->json([],422);

    if (\App\Models\Lead::where(['email' => $request->get('email')])->count() > 0) {
        // user found
        return response()->json([ 'data' => [
            'message' => 'lindirizzo email è già registrato'
        ]], 200);

     }
    else {
        // Register the new user or whatever.
        $client = \App\Models\Lead::create(['email' => $request->get('email'),]);
        return response()->json([ 'data' => [
            'message' => 'Registrato con successo!'
        ]], 201);
    }
}

And when i write the same email in front i get error POST http://127.0.0.1:8000/api/register/leads 422 (Unprocessable Content)

My network respons its ok, {"message":"validation.unique","errors":{"email":["validation.unique"]}} But i dont want to show error in console

1 Answers

This line of code is unnecessary.

// ...
  return response()->json([],422);
// ...

Remove it.


Writing The Validation Logic

... if the validation fails, the proper response will automatically be generated. If the validation passes, our controller will continue executing normally.


Addendum

The block of code below is unnecessary as well since the validation rule 'unique:leads' is sufficient:

// ...
    if (\App\Models\Lead::where(['email' => $request->get('email')])->count() > 0) {
        // user found
        return response()->json([ 'data' => [
            'message' => 'lindirizzo email è già registrato'
        ]], 200);

     }
// ...

Remove it as well!

If you wish to have a custom message for the "unique email" validation, add it as the second parameter of the ->validate(...) method:

$request->validate([
    'email' => ['required', 'unique:leads', 'email'],
], [
    'email.unique' => 'lindirizzo email è già registrato'
]);
Related