Search code examples
laravellaravel-5eloquentlaravel-5.5

update duplicate issue in laravel-5.5 in controller


I use this function to insert data form form:

controller:

public function store(request $request)
    {
       $this->validate($request, [
         'email' => 'required|unique:users|email',
         'mobile' => 'nullable|unique:users',
       ]);
       User::create($request->all());
       return redirect(route('users'));
}

for update I use this:

public function update(Request $request, User $user)
{
       $this->validate($request, [
         'email' => 'required|unique:users|email',
         'mobile' => 'nullable|unique:users',
       ]);
       $user->update($request->all());
       return redirect(route('users'));
}

I have a problem. I can not save (update) edited form.

because it return an error:

1062 Duplicate entry for email and mobile

In edited form,maybe I wouldn't change email...so I want save form without change current email...

How can I manage it?


Solution

  • Ignore the record for which you're comparing:

    'email' => 'required|unique:users,email,'.$user->id.'|email',
    'mobile' => 'nullable|unique:users,mobile,'.$user->id